首頁 > 後端開發 > php教程 > Symfony 2用於開發和部署的清單

Symfony 2用於開發和部署的清單

Jennifer Aniston
發布: 2025-02-21 10:34:11
原創
610 人瀏覽過

Symfony 2用於開發和部署的清單

鑰匙要點

  • 在開始開發過程之前,要測試生產服務器的兼容性至關重要,以避免潛在的問題,例如丟失的庫或應用程序所依賴的不變的全局設置。
  • 服務器準備,版本控制,遠程開發模式,緩存更新和錯誤頁面自定義是在Symfony 2應用程序部署過程中要考慮的一些關鍵方面。
  • 使用Git進行版本控制可以幫助在開發過程中對遠程站點進行本地更改。每次更新應用程序以避免錯誤時清除緩存也很重要。 >
  • >自定義Symfony 2應用程序的錯誤頁面可以提供更量身定制的用戶體驗。但是,這些頁面不支持Twig模板擴展名,因此必須從頭開始設計。 >
  • 在我的建築物中,我的個人網絡應用程序與Symfony 2系列發佈在SitePoint上的腳趾,我介紹了引導,開發和完成(在一些高級技術上)的一些基礎知識,以使用Symfony 2來開發Web應用程序。但是,由於該系列的長度限制,我們在“最終”步驟中沒有涵蓋太多:將Symfony 2應用程序部署到生產環境中。
  • 當我們進行開發時,我們很可能處於“根”角色;但是在生產環境中,我們可能被剝奪了這種特權。另外,設置可能不同。為了使情況變得更糟,有時我們無法像在自己的機器中那樣更改這些設置。
  • > 因此,在我們自己的服務器中進行任何實際開發之前,檢查我們的生產服務器的“兼容性”非常重要。這將避免這種可怕的情況,例如:Symfony依賴的庫缺失,該應用程序所依賴的某些全局設置不變,等等。
>測試生產服務器的“兼容性”確實應該是我們一開始就做的事情。在部署期間還有其他一些方面要解決 - 例如用於各種錯誤消息的模板等。

> 在以下各節中,我們將假設您對生產服務器沒有完全控制。如果這樣做,大多數兼容性問題可能不適用,因為您應該可以輕鬆地自己解決它們。

>生產服務器上的空物框架

>請按照我在Symfony 2上的第一篇文章中的說明進行說明,以在Production Server上設置一個空的Symfony框架。

>這對於測試服務器是否已啟用捲曲也很有用,不僅安裝在服務器上,而且作為PHP擴展名,確保我們可以獲取外部資源。在我的特殊情況下,這非常重要 - composer.org在我的國家被阻止,我需要使用代理來獲取和安裝Symfony框架。 >

>以後可以將此空框架檢查到版本控件中。

config file

Symfony 2附帶一個config.php文件,該文件位於Web目錄中。這是測試大多數“準備就緒”問題的腳本。要訪問該頁面,我們需要對其進行一些調整:

<span><span><?php
</span></span><span>
</span><span><span>if (!isset($_SERVER['HTTP_HOST'])) {
</span></span><span>    <span>exit('This script cannot be run from the CLI. Run it from a browser.');
</span></span><span><span>}
</span></span><span>
</span><span><span>if (!in_array(@$_SERVER['REMOTE_ADDR'], array(
</span></span><span>    <span>'127.0.0.1',
</span></span><span>    <span>'::1',
</span></span><span><span>))) {
</span></span><span>    <span>header('HTTP/1.0 403 Forbidden');
</span></span><span>    <span>exit('This script is only accessible from localhost.');
</span></span><span><span>}
</span></span><span><span>...</span></span>
登入後複製
登入後複製
這個文件僅是從本地瀏覽器調用的。如果塊,我們需要評論第二個,以便我們可以遠程訪問它。

我的服務器已正確配置,沒有任何關鍵問題:>

Symfony 2用於開發和部署的清單此文件測試了我在下表中總結的準備問題。實際測試是在App/SymfonyRequirentess.php中完成的,因此我們還可以查看該文件。

設置/模塊 要求 嚴重性 >動作 PHP版本 = 5.3.3 需要但不得是5.3.16 升級到最新版本。建議至少使用PHP 5.4.8及以上。 供應商庫 由composer.phar安裝 必需的 使用composer.phar更新 緩存,日誌目錄 可寫 必需的 通過發行CHMOD授予許可。通常,特權應為755或777。 時區 類似“亞洲/上海”或您的時區 必需的 更改php.ini。 json_encode,session_start,ctype_alpha,token_get_all,simplexml_import_dom 啟用 必需的 啟用各自的PHP庫。大多數PHP服務器都啟用了這些。 APC 啟用/禁用 如果使用APC,請啟用 啟用APC或禁用APC(如果使用另一個緩存/加速器)。 xdebug 各種設置 需要,建議 相應地更改Xdebug設置。 domdocument,mb_strlen,iCony,utf8_decode,intl等 各種模塊 受到推崇的 啟用,如果您願意。 加速器 各種設置 受到推崇的 根據您的要求安裝和啟用。 >“必需”的嚴重程度意味著我們必須更改服務器設置以滿足要求。否則,Symfony 2將不會運行,因此不應該是我們應用程序開發的正確選擇。可以安全地忽略“推薦”項目,但我確實建議我們盡可能地滿足這些建議。在我的情況下(如上所述),我的生產服務器只有一個警告。這為進一步發展建立了堅實而可靠的基礎。

使用git同步文件

在開發過程中,您可以使用版本控件將文件複製到遠程站點的本地更改。在這種情況下,適當的.gitignore(或其他版本控制系統中的等效物)將變得方便。我的.gitignore文件的以下摘錄是用於參考:>

這絕不是詳盡或適合的列表。例如,如果您使用phpstorm,但不使用Netbeans,則可以刪除NetBeans部分,並用適合PhpStorm的過濾器替換:
<span><span><?php
</span></span><span>
</span><span><span>if (!isset($_SERVER['HTTP_HOST'])) {
</span></span><span>    <span>exit('This script cannot be run from the CLI. Run it from a browser.');
</span></span><span><span>}
</span></span><span>
</span><span><span>if (!in_array(@$_SERVER['REMOTE_ADDR'], array(
</span></span><span>    <span>'127.0.0.1',
</span></span><span>    <span>'::1',
</span></span><span><span>))) {
</span></span><span>    <span>header('HTTP/1.0 403 Forbidden');
</span></span><span>    <span>exit('This script is only accessible from localhost.');
</span></span><span><span>}
</span></span><span><span>...</span></span>
登入後複製
登入後複製

或只是將它們都放在其中,因此您會自動容納可能使用其他IDE的其他開發人員。建議始終包含前3節(作曲家,Symfony,Logs)。
<span># Composer
</span><span>vendor
</span><span>vendor/*
</span><span>!public/assets/js/vendor
</span><span>!public/assets/js/vendor/*
</span><span>!public/assets/css/vendor
</span><span>!public/assets/css/vendor/*
</span><span>composer.phar
</span><span>composer.lock
</span><span>
</span><span># Symfony
</span><span>app/cache/*
</span><span>app/logs/*
</span><span>
</span><span># Logs
</span><span>error.log
</span><span>access.log
</span><span>
</span><span># Netbeans
</span><span>nbproject
</span><span>.nbproject
</span><span>.nbproject/*
</span><span>nbproject/*
</span><span>nbproject/private/
</span><span>build/
</span><span>nbbuild/
</span><span>dist/
</span><span>nbdist/
</span><span>nbactions.xml
</span><span>nb-configuration.xml</span>
登入後複製

>清除緩存

> SYMFONY應用程序首次在遠程服務器上運行時,它將在應用程序/CACH/PORD目錄中創建我們的應用程序的編譯版本。當我們的文件(尤其是我們的控制器和路由)更新時,我們需要刷新緩存,或者輸出可能不正確,並且通常會導致500個錯誤。

要清除緩存,我通常會ssh到我的生產服務器,並在App Directory下執行RM -RF緩存命令。控制台緩存:清除或控制台緩存:熱身命令可能不是最乾淨的方法。

遠程開發模式

謹慎使用它,只有在絕對必要的情況下!

> 在某些情況下,當本地功能網站部署到生產服務器時,本地功能網站可能會崩潰。引起這一點的原因可能很複雜,並且與編碼過程本身無關。在這種情況下,我們可以考慮啟用遠程開發模式。

為此,我們採用類似的方法來通過評論App_dev.php中的以下代碼塊禁用Local -Host檢查

然後,我們可以訪問域和頁面,並以http://rsywx_remote/app_dev.php之類的內容進行訪問。當出現問題時,此開發模式將顯示更有用的調試信息,並可以幫助我們找到一些根深蒂固的問題。要在此調試期內增加安全性,請添加一張僅允許從您自己的IP訪問到上面文件的檢查 - 這將使其他所有人都保持開發模式。大多數問題將與數據庫設置有關(錯誤的數據庫和/或憑據),錯誤的API URI(本地和遠程URIS可能不同),過時的緩存,缺少本地使用但未遠程啟用的庫等。

解決問題後,請記住要解開這些行以恢復完整的訪問控制。普通用戶只能被允許使用app.php作為我們的應用程序的輸入點。

自定義錯誤頁面
<span># IntelliJ - PhpStorm and PyCharm
</span><span>.idea
</span><span>.idea/
</span><span>.idea/*
</span><span>*.iml
</span><span>*.ipr
</span><span>*.iws </span>
登入後複製
Symfony 2的默認樹枝模板引擎確實提供了一些錯誤頁面(404、500等)。但是這些頁面的設計通常不符合我們的應用。官方網站對如何執行此操作有詳細的解釋。我們可以根據自己的佈局和主題來開發自己的錯誤頁面。

>我們可以自定義錯誤頁面,並將它們放在應用程序/資源/twigbundle/views/exception下。可以將文件命名為404錯誤,error403.html.twig的文件error404.html。

>重要的是要注意,在Symfony 2中,錯誤消息頁面不支持TWIG模板擴展。這意味著我們無法從為其他頁面設計的現有佈局擴展到錯誤頁面。我們必須從頭開始設計錯誤頁面。這有點不方便,但仍然值得一個嚴肅的網站。

結論

在本文中,我們介紹了一些與Symfony部署相關的主題:服務器準備,版本控制,遠程開發模式,緩存更新,錯誤頁面自定義等。

> 部署通常是我們發展的最後一步。我希望這篇文章能幫助您避免一些常見的pitfals,並使您的部署過程更加順利。

>如果您覺得它很有趣或有用,請重新檢查本文,如果您有反饋,請在下面發表評論,非常感謝!

>!

經常詢問有關Symfony 2開發和部署的問題

什麼是Symfony 2,為什麼我應該將其用於我的Web開發項目?

Symfony 2是用於開發Web應用程序的高性能PHP框架。它以速度,靈活性和可重複使用的組件而聞名。它允許開發人員有效地構建強大的應用程序。該框架遵循MVC(模型視圖控制器)設計模式,這使得管理代碼庫更容易,並促進可擴展應用程序的開發。 Symfony 2還具有一個充滿活力的社區,可提供出色的支持並為其廣泛的捆綁圖書館做出貢獻。

>如何在本地機器上安裝Symfony 2?涉及幾個步驟。首先,您需要確保安裝了PHP。 Symfony 2需要PHP 5.3.9或更高。安裝了PHP後,您可以使用PHP的依賴關係管理工具來安裝Symfony。您可以從其官方網站下載作曲家。安裝作曲家後,您可以通過運行命令的“ Create-Project Symfony/Framework-standard-edition my_project_name”。

> Symfony 2的關鍵功能是什麼? >

Symfony 2具有許多功能,使其成為Web開發的強大工具。其中一些功能包括其可重複使用的組件,可以在多個項目中使用,其對MVC設計模式的支持,可促進清潔和可維護的代碼以及將其用於數據庫抽象的學說ORM。 Symfony 2還具有強大的安全組件,可為您的應用程序提供全面的安全系統。

>如何部署Symfony 2應用程序?

>如何將我的Symfony 2應用程序升級到較新版本?

2可以使用Composer完成對較新版本的應用程序。首先,您需要在項目中更新“ composer.json”文件,以指定要使用的新版本的Symfony。之後,您可以運行“作曲家更新”命令來更新您的應用程序。升級後徹底測試您的應用程序很重要,以確保一切正常工作。其他軟件中的插件。它們是包裝和分發Symfony 2代碼的一種方式。它們可以包含庫,模板,控制器,配置中的任何內容 - 本質上是可以執行的任何PHP代碼。您可以使用Symfony社區提供的捆綁包或創建自己的捆綁包。要使用捆綁包,您需要下載它,在'appkernel.php'文件中啟用它,並在必要時進行配置。

>如何處理Symfony 2? > Symfony 2提供了一種強大而靈活的方法來處理錯誤和異常。它帶有內置的“調試”組件,該組件在開發過程中提供詳細的錯誤消息。在生產環境中,Symfony 2捕獲了所有例外,並將它們轉換為“響應”對象。您可以通過在'app/resource/twigbundle/twigbundle/views/extescondory中創建模板來自定義錯誤頁面。一個“表單”組件,可輕鬆創建和管理表單。您可以通過創建“ formType”類並以形式定義字段來創建表單。創建表單後,您可以處理控制器中的表單提交。 Symfony 2還提供了一種使用驗證約束來驗證表單數據的方法。

如何在Symfony 2中管理用戶身份驗證和授權?和授權。您可以配置不同的身份驗證方法,例如形式登錄,HTTP基本身份驗證或OAuth。為了授權,Symfony 2提供了靈活的“訪問控制列表”(ACL)系統,該系統允許您為用戶定義細粒度的權限。

>如何優化Symfony 2應用程序的性能?

>有幾種方法可以優化Symfony 2應用程序的性能。其中一些包括使用“產品”環境進行生產,使APC PHP擴展用於OpCode緩存,使用作曲家優化自動加載器,並使用“ HTTPCACHE”類使用“ HTTPCACHE”類將HTTP緩存標頭添加到您的響應中。

以上是Symfony 2用於開發和部署的清單的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板