首先你應該是用 PHP 5.3 以上的版本,如果 PHP 版本在這之下,是時候該升級了。我建議如果有條件,最好使用最新的版本。
你應該看過 PHP The Right Way,這篇文章包含了很多內容,而且還能再擴展開。大部分的名詞和概念你都需要了解。
1. PSR
The idea behind the group is for project representatives to talk about the commonalities between our projects and find ways we can about the commonalities between our projects and find ways we can about the commonalities between our projects and find ways we can about the commonalities between our projects and find ways we can about the commonalities between our projects and find ways we can work together。次提到PSR(PHP Standard Recommendation)。很多人以為 PSR 只是做一些規範程式碼風格等無關痛癢的事情,但其實遠不止此。
PSR 的一系列標準文件由 php-fig (PHP Framework Interop Group)起草和投票決議,投票成員中有一些主流框架和擴展的作者,包括 Laravel、Symfony、Yii等等。
依照其官網的說法,這個組織的目的並不是告訴你你應該怎麼做,只是一些主流的框架之間相互協商和約定。但是我相信這些框架和擴充總會有你用到的。
PSR 目前通過的共有6 份文件:
0:自動載入(主要是針對PHP 5.3 以前沒有命名空間的版本)
4:自動加載更細(在出現命名空間後有很大的改變) 7:HTTP 訊息介面目前在起草(Draft)中的還有PSR-5(PHPDoc Standard)、PSR-6( Cache)等。 5 和 6 沒有出現在以上的清單中,是因為還沒有投票通過。 我相信隨著標準的不斷更新,你會發現研究這些約定對你也是很有裨益的,雖然未必什麼都要遵守。 Nobody in the group wants to tell you, as a programmer, how to build your application.
2. Composer
man
Composer is a toolm toclus man olage for unywrym tos em toclus toclus toclus toclus youle toclone the emhole toclulwem tos toclus youle toclus toclus tos tocl youle toclus youle toclus em toolage unnawre; on and it will manage (install/update) them for you.composer 和Pear、Pecl 都不同,它不僅僅是用於安裝擴展,更重要的是定義了一種現代PHP 框架的實現和擴展管理的方法。類似 node.js 的 npm、Python 的 pip 但又比以上做的更多。 composer 的核心是實現擴充功能的標準安裝和類別的自動載入。透過 packagist.org 這個平台,無數的擴充元件可以被很方便的引入,目前比較知名的 PHP 擴充都可以透過 composer 安裝了。而呼叫僅只需要載入一個 autoload.php 的檔案即可。 composer 是透過 spl_autoload_register 方法註冊一個自動載入方法實現擴充類別和檔案的載入的,當然這中間 composer 也做了一個優化。我們都知道 PHP 引進文件要透過 include 和 require 來實現,其實寫起來並不好看。 PHP 5.3 提供了命名空間,這本來和檔案引入也不相干。但是composer 實作了PSR-4(在舊版的PHP 上是PSR-0),使用use 時透過呼叫 spl_autoload_register 實現的方法在呼叫時載入所需的類,在寫法上類似Python 的import,既美觀也起到了按需載入、延遲載入的作用。3. php-cs-fixer
The PHP Coding Standards Fixer tool fixes most issues in your code when you want to follow the PHP coding 呢工具的作用是依照PSR-1 和PSR-2 的規格格式化你的程式碼,還有一些可選的程式設計風格是Symfony 的規格。 這個其實本來並沒有那麼值得一說,只是最近在幾個開源框架中都看到了 .php_cs 的文件,一時好奇,深究下去才發現了這個專案。或許有人覺得糾結程式碼風格的問題其實沒有特別大的必要。要說好處我也說不上來,如果你覺得程式設計不只是一份工作,那這就跟你收拾房間一樣,邋遢的房間不影響你吃飯睡覺,但乾淨的看起來更舒服。如果要和別人合作,那這件事情就更重要了。4. PsySH
A runtime developer console, interactive debugger and REPL for PHP.PsySH 類似 Python 的 IDLE 的一個 PHP 的交互運行環境。這是我在 Laravel 中發現的,Laravel 5 的artisan tinker 的功能是透過它來實現的。 Laravel 4 中用的是另一個項目:boris。 這個主要是在平常測試一些 php 的簡單的函數和特性的時候可以方便使用。遇到一些不確定的事情、例如empty 的使用等,可以用它來做測試。5. 一些框架和組件
框架
我比較喜歡的是 Laravel,目前公司在用的是 Yii2,我關注的有 Symfony 以及 Phalcon (C語言實現)。用什麼不用什麼,主要是喜好,有時候也由不得自己選擇,但研究一下,多一分了解也未嘗不可。
提到 Laravel 很多人會立刻想到 Ruby on Rails。我想模仿或抄襲這都不是主要的目的,主要的目的是提供給開發者一個更好的工具。 Laravel 還好它有一個不一樣的路由控制(不帶 Action 後綴或前綴的),有一個好用的ORM (Eloquent),好用的模板引擎(Blade) 亦或有一個顏值比較高的文檔(社區看到的話)等等。
強大有時候也會被人詬病龐大,但這在於你需要了解自己專案的中長期規劃,專案現在的大小以及未來的大小及承載。
Larval 的核心實作是一個容器(Container)以及 PHP 的反射類別(ReflectionClass)(Yii 2 也是一樣)。要理解這些,多看文章和文件的同時,也可以看看原始碼。
Symfony 2 提供了很多組件。 http-kernel 和 http-foundation 在 Laravel 中也有被繼承過來直接使用。它是值得了解和學習的。
CodeIgniter 是一個小巧而強大的框架。雖然 CI 並沒有使用 Composer 元件的方式進行開發,但 3.0 以後的版本也加入了 Composer 的支援(這無非就是多一個 vendor 的目錄,引入 autoload.php)的檔案。
ORM
ORM 亦或 Active Record 我覺得還是需要的。也許有人認為 PHP 就是一個模板引擎、就該手寫 SQL 。不要被這些話所困擾。
CodeIgniter 中 Active Record 的實作方式很輕巧,但對於 CI 本身的體積來說,已經是很好用的了。
Laravel 實現的 Eloquent 我是很喜歡的,也可以整合到別的專案中去。 Symfony 2 使用的是 Doctrine ,這個專案也值得關注。 Yii 2 也有自己的一套實現方式。
模板引擎
模板引擎需要做三件事:
1. 變數值的輸出(echo),
2.變數值的輸出(echo),
. 引入或繼承自其他文件
Laravel 實現的Blade 是一個比較輕量好用的模板引擎。不過目前並不是很好能夠引入其他框架。十一的時候閒來無事試圖將其引入到 Yii 2 中,現在還只是簡單的實現,我希望後面能將 Blade 的解析部分單獨抽取出來做一個輕量級的實現。在 Github 上搜尋發現也有人在做同樣的事情。
Yii 2 似乎更推薦就用原生的 PHP 去寫,不過也提供了支援 Smarty 和 Twig 的擴充。 Symfony 2 則採用了 Twig。 Twig 和 Symfony 以及上文提到的 php-cs-fixer 都是 SensioLabs 的作品。
Smarty 是一個古老而頑強的模板引擎。說實話我並不是太喜歡,其文法過於複雜,變數賦值這些事情都有自己的一套做法。現在的版本更是使用 Lexer 的方式來解析文件,感覺像是用 PHP 實作了另一種語言。專案裡面還有一些太長的正規表示式、太複雜的實現,我覺得這是一件很危險很容易出錯的事。

要保護應用免受與會話相關的XSS攻擊,需採取以下措施:1.設置HttpOnly和Secure標誌保護會話cookie。 2.對所有用戶輸入進行輸出編碼。 3.實施內容安全策略(CSP)限制腳本來源。通過這些策略,可以有效防護會話相關的XSS攻擊,確保用戶數據安全。

优化PHP会话性能的方法包括:1.延迟会话启动,2.使用数据库存储会话,3.压缩会话数据,4.管理会话生命周期,5.实现会话共享。这些策略能显著提升应用在高并发环境下的效率。

theSession.gc_maxlifetimesettinginphpdeterminesthelifespanofsessiondata,setInSeconds.1)它'sconfiguredinphp.iniorviaini_set().2)abalanceisesneededeededeedeedeededto toavoidperformance andunununununexpectedLogOgouts.3)

在PHP中,可以使用session_name()函數配置會話名稱。具體步驟如下:1.使用session_name()函數設置會話名稱,例如session_name("my_session")。 2.在設置會話名稱後,調用session_start()啟動會話。配置會話名稱可以避免多應用間的會話數據衝突,並增強安全性,但需注意會話名稱的唯一性、安全性、長度和設置時機。

會話ID應在登錄時、敏感操作前和每30分鐘定期重新生成。 1.登錄時重新生成會話ID可防會話固定攻擊。 2.敏感操作前重新生成提高安全性。 3.定期重新生成降低長期利用風險,但需權衡用戶體驗。

在PHP中設置會話cookie參數可以通過session_set_cookie_params()函數實現。 1)使用該函數設置參數,如過期時間、路徑、域名、安全標誌等;2)調用session_start()使參數生效;3)根據需求動態調整參數,如用戶登錄狀態;4)注意設置secure和httponly標誌以提升安全性。

在PHP中使用會話的主要目的是維護用戶在不同頁面之間的狀態。 1)會話通過session_start()函數啟動,創建唯一會話ID並存儲在用戶cookie中。 2)會話數據保存在服務器上,允許在不同請求間傳遞數據,如登錄狀態和購物車內容。

如何在子域名間共享會話?通過設置通用域名的會話cookie實現。 1.在服務器端設置會話cookie的域為.example.com。 2.選擇合適的會話存儲方式,如內存、數據庫或分佈式緩存。 3.通過cookie傳遞會話ID,服務器根據ID檢索和更新會話數據。


熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

EditPlus 中文破解版
體積小,語法高亮,不支援程式碼提示功能

ZendStudio 13.5.1 Mac
強大的PHP整合開發環境

DVWA
Damn Vulnerable Web App (DVWA) 是一個PHP/MySQL的Web應用程序,非常容易受到攻擊。它的主要目標是成為安全專業人員在合法環境中測試自己的技能和工具的輔助工具,幫助Web開發人員更好地理解保護網路應用程式的過程,並幫助教師/學生在課堂環境中教授/學習Web應用程式安全性。 DVWA的目標是透過簡單直接的介面練習一些最常見的Web漏洞,難度各不相同。請注意,該軟體中

MantisBT
Mantis是一個易於部署的基於Web的缺陷追蹤工具,用於幫助產品缺陷追蹤。它需要PHP、MySQL和一個Web伺服器。請查看我們的演示和託管服務。

mPDF
mPDF是一個PHP庫,可以從UTF-8編碼的HTML產生PDF檔案。原作者Ian Back編寫mPDF以從他的網站上「即時」輸出PDF文件,並處理不同的語言。與原始腳本如HTML2FPDF相比,它的速度較慢,並且在使用Unicode字體時產生的檔案較大,但支援CSS樣式等,並進行了大量增強。支援幾乎所有語言,包括RTL(阿拉伯語和希伯來語)和CJK(中日韓)。支援嵌套的區塊級元素(如P、DIV),