詳解symfony如何使用指令創建項目
symfony如何使用指令建立專案?本文主要介紹了使用symfony指令創建專案的方法,結合實例形式分析了Symfony命令的使用方法與專案創建的相關技巧,需要的朋友可以參考下。希望對大家有幫助。
本文實例講述了使用symfony指令建立專案的方法。分享給大家供大家參考,具體如下:
概況
這一章節描述一個Symfony專案的合理結構框架,並且用 symfony 命令初始專案結構。
介紹
在symfony裡,一個專案是一個指定網域下的一組服務和有效操作,共享相同的專案模型。
在一個專案裡面,應用程式中的操作是一組邏輯;每個應用都可以正常的獨立運行,與相同專案中的其他應用互不干涉。
在多數情況中,一個專案會包含兩個應用,一個負責前台顯示,一個負責後台處理,使用相同的資料庫。當然你也可以在一個專案中包含很多小站點,每個站點都是不同的應用程式。注意在不同應用程式之間使用的超連結必須使用絕對路徑。
每一個應用程式都是一組模組,每一個模組都負責一個特殊的功能。一個模組通常為了類似的功能而使用一個頁面或一組頁面。例如模組可以是home, articles, help, shoppingCart, account,等等。
模組的功能:每個模組都有它們各自的功能,例如 shoppingCart(購物車) 模組要有 新增(add), 展示(show) 和 更新(update) 功能。功能的行為可以看作一個典型web應用程式中的頁行為。
如果一個新的專案的層級太多,那麼可以很簡單的把模組中的所有功能分組,這樣做檔案結構可以保持簡單。當應用更加複雜的時候,可以在邏輯模組中組織功能。
每個應用程式都可以運行在不同的環境中,例如,不同的配置或資料庫。一般來說每個新的應用都會運行在三個環境(開發,測試和最終產品)。如果需要的話每個應用程式都可以運行在更多的環境中,在不同的環境中僅需要修改配置配件。
例如,在一個測試環境中需要記錄警告和錯誤,而一個最終產品環境將只需要記錄錯誤。在開發環境中通常不會開啟快取加速,而在測試和最終產品環境中需要開啟。開 發環境和測試環境可能需要測試用的數據,儲存在最終產品的遠端資料庫中。所有的環境都可以在一台機器上共存,而通常產品伺服器上只有最終產品環境。
注意:如果你是透過沙盒(sandbox)使用symfony,你不需要設定項目或應用,沙盒(sandbox)內部已經準備了一個名為'sf_sandbox'的項目和一個名為'frontend'的應用。你也不需要設定web伺服器,只需要把你的程式放置在 web/ 根目錄下。
Pake
SymFony使用專門的工具Pake去管理專案、應用程式和模組。 Pake是一個php工具,類似Rake指令(這是一個將 make 指令轉換為Ruby的工具)。它會根據一個名為 pakefile.php 的特殊設定檔自動化一些管理任務。如果你使用 pake 工具取代了 symfony 命令列,所有的操作都會變得非常簡單。
要得到所有有效的管理操作命令列表,只需要簡單得在你的專案目錄中輸入:
$ symfony -T
CLI(命令列操作)的任務調度用於一個專案的前期階段期間。一個關於CLI任務調度的完整說明參考CLI章節 。
專案設定
在一切開始之前,你必須新建一個存放專案的目錄:
$ mkdir /home/steve/myproject
然後,開始初始化專案產生原始檔案和目錄,簡單的輸入:
$ cd /home/steve/myproject $ symfony init-project myproject
這是一個新建立的檔案系統樹結構的概況:
apps/
batch/
cache/
config /
data/
doc/
lib/
log/
test/
web/
symfony 指令可以在目前專案的可用目錄中隨時調用。
應用程式設定
專案到現在還沒完成,它至少還需要一個應用程式。先使用symfony init-app 指令初始化一個應用,用指令後面的參數去命名這個應用程式的名稱:
$ symfony init-app myapp
這樣就在專案的根目錄下的apps/ 資料夾中建立了一個myapp 目錄,其中包含了用於你網站的一個預設應用程式設定和一組目錄檔案:
apps/
myapp/
config/
i18n/
lib/
modules/
templates/
一些充當各自預設環境中的前端控制器的php檔案也被建立在專案根目錄的web目錄下:
#web/
index.php
myapp_dev.php
index.php是production新应用程序的前端控制器。因为你创建这个项目中的第一个应用程序时,Symfony创建了一个调用 index.php的文件,例如 myapp.php (如果你现在添加一个名为 mynewapp 的新应用程序,新产品的前端控制器将被命名为mynewapp.php)。在 开发环境中运行程序时,调用前端控制器 myapp_dev.php。
注意:你如果仔细阅读了介绍,你可能会对myapp_test.php文件的位置感到意外。事实上,测试 环境是用于对你的应用程序的构件进行单元测试,它不需要前端控制器。可以参考单元测试章节去了解更多详细内容。
从现在开始,/home/steve/myproject/ 目录将会作为项目的根目录。根目录的路径已经被保存为 SF_ROOT_DIR 常量,定义在 index.php 文件中,并且我们将会用这个常量名代替实际路径以避免把不叫Steve的读者搞糊涂了(译者注:因为作者将项目放在/home/steve /myprojetc的目录下,这个路径每个人可能都不尽相同,所以使用常量SF_ROOT_DIR来代替了实际路径)。
Web服务器设置
为了访问和测试新的应用程序,需要配置web服务器。这有一个Apache的例子,在 httpd.conf 配置文件中加入一个新的虚拟主机:
<Directory "/$data_dir/symfony/web/sf"> AllowOverride All Allow from All </Directory> <VirtualHost *:80> ServerName myapp.example.com DocumentRoot "/home/steve/myproject/web" DirectoryIndex index.php Alias /sf /$data_dir/symfony/web/sf <Directory "/home/steve/myproject/web"> AllowOverride All Allow from All </Directory> </VirtualHost>
注意:上面的配置中的 $data_dir 变量需要替换成你的PEAR库目录。例如:在*nix系统中,你可以输入:
<code> Alias /sf /usr/local/lib/php/data/symfony/web/sf</code>
重启Apache服务之后,就可以看到调用新创建的应用程序的页面,只需要在一个标准的web浏览器的地址栏输入下列路径:
http://myapp.example.com/index.php/
或者,在调试模式下使用这个路径:
http://myapp.example.com/myapp_dev.php/
注意:Symfony显示‘简短漂亮的(smart)'路径时用到了 mod_rewrite 模块。如果你的Apache版本没有将 mod_rewrite 模块编译进去,那么需要在 httpd.conf 中检查模块mod_rewrite是否是动态模块方式(DSO)安装的,并且确认是否已经打开(译者注:关于Apache的mod_rewrite模块安 装和使用方法请参考Apache相关文档,这里假设读者已经具备这方面知识而不作过多说明):
AddModule mod_rewrite.c LoadModule rewrite_module modules/mod_rewrite.so
模块设置
你这个新的应用程序并不出众,它缺乏吸引人的功能。如果你想增加功能性,你需要在在其中用到模块。这里再一次用到了 symfony 命令,参数为 init-module ,后面跟着应用程序名称和新模块的名称:
$ symfony init-module myapp mymodule
创建以后的树结构如下:
modules/
mymodule/
actions/
config/
lib/
templates/
validate/
新模块直接可以被使用:
http://myapp.example.com/index.php/mymodule
然后你需要让它正常的工作,编辑文件 myapp/modules/mymodule/templates/indexSuccess.php 输入:
Hello, world !
保存它,刷新刚才的页面就可以看到内容!
源文件版本控制(Source versioning)
应用程序设置完成之后,建议开始进行源文件版本控制。Symfony从一开始就支持CVS(译者注:版本控制系统),建议使用Subversion(译者注:一个版本控制系统软件,采用CVS 的运作模型, 并以取代CVS 为目标)。下面的例子列出了一些Subversion的命令,用于从在一个安装了Subversion的服务器上创建一个新项目的"仓库"(译者注:repository,源代码储存的地方)。对于Windows用户,建议客户端使用TortoiseSVN。关于源文件版本控制的更多信息和命令用法,请参考Subversion文档。
下面的例子假设$SVNREP_DIR是一个已经定义的环境变量。如果你还没有定义它,你需要用"仓库"的实际路径代替$SVNREP_DIR变量。
现在让我们开始创建myproject项目的新"仓库":
$ svnadmin create $SVNREP_DIR/myproject
然后用下面这串命令创建新"仓库"的基本组织结构(规划),其中包含 trunk, tags 和 branches 三个目录:
[code]$ svn mkdir -m "layout creation" file:///$SVNREP_DIR/myproject/trunk file:///$SVNREP_DIR/myproject/tags file:///$SVNREP_DIR/myproject/branches[/code]
这将是你第一个版本。现在你必须导入项目的文件,但不包括缓存和日志等临时文件:
$ cd /home/steve/myproject $ rm -rf cache/* $ rm -rf log/* $ svn import -m "initial import" . file:///$SVNREP_DIR/myproject/trunk
检查提交的文件:
$ svn ls file:///$SVNREP_DIR/myproject/trunk/
看上去很不错。现在SVN"仓库"已经记录了所有项目文件的版本(和更改历史)。就是说实际路径为 /home/steve/myproject 的目录中所有的文件都已经被"仓库"记录。要做到这一点,首先重命名 myproject 目录名,当一切运行正常的时候可以删除它,并且在新目录中向"仓库"提交一个checkout:
$ cd /home/steve $ mv myproject myproject.origin $ svn co file:///$SVNREP_DIR/myproject/trunk myproject $ ls myproject
现在你可以在 /home/steve/myproject/ 目录下的文件中工作,并且提交修改到"仓库"中。不要忘记作一些清理和删除myproject.origin目录,它现在没有用了。
还有一些另外的设置。当你向"仓库"中提交工作目录时,会复制一些多余的文件,像项目中 cache 和 log 目录下的文件。因此你需要针对这个项目在svn中指定一个忽略列表。你也需要重新将 cache/ 和 log/ 目录的权限设置为完全控制,在访问时产生的文件SVN将不会储存:
$ cd /home/steve/myproject $ svn propedit svn:ignore . $ chmod 777 cache $ chmod 777 log
这将调用在SVN中设置的默认的文本编辑器。如果没有生效,就像下面这样设置subversion首选的编辑器:
$ export SVN_EDITOR=<name of editor> $ svn propedit svn:ignore .
直接在SVN中的忽略列表中加入myproject子目录,这样提交的时候就忽略了:
cache log
保存然后退出,这样就完成了。
相关推荐:
以上是詳解symfony如何使用指令創建項目的詳細內容。更多資訊請關注PHP中文網其他相關文章!

熱AI工具

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

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

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

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

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

CrystalDiskMark是一款適用於硬碟的小型HDD基準測試工具,可快速測量順序和隨機讀取/寫入速度。接下來就讓小編為大家介紹一下CrystalDiskMark,以及crystaldiskmark如何使用吧~一、CrystalDiskMark介紹CrystalDiskMark是一款廣泛使用的磁碟效能測試工具,用於評估機械硬碟和固態硬碟(SSD)的讀取和寫入速度和隨機I/O性能。它是一款免費的Windows應用程序,並提供用戶友好的介面和各種測試模式來評估硬碟效能的不同方面,並被廣泛用於硬體評

透過sudo指令,使用者可以在提升權限模式下執行指令,而無需切換到超級使用者模式。本文將介紹如何在Windows系統中模擬類似sudo指令的功能。什麼是數道司令部? Sudo(「超級使用者do」的縮寫)是一種命令列工具,允許基於Unix的作業系統(如Linux和MacOS)的使用者以提升的權限執行命令,這些權限通常是管理員所擁有的。在Windows11/10中執行SUDO命令然而,隨著最新發布的Windows11Insider預覽版推出,Windows用戶現在也可以體驗到這項功能。這項新功能使用戶能夠

foobar2000是一款能隨時收聽音樂資源的軟體,各種音樂無損音質帶給你,增強版本的音樂播放器,讓你得到更全更舒適的音樂體驗,它的設計理念是將電腦端的高級音頻播放器移植到手機上,提供更便捷高效的音樂播放體驗,介面設計簡潔明了易於使用它採用了極簡的設計風格,沒有過多的裝飾和繁瑣的操作能夠快速上手,同時還支持多種皮膚和主題,根據自己的喜好進行個性化設置,打造專屬的音樂播放器支援多種音訊格式的播放,它還支援音訊增益功能根據自己的聽力情況調整音量大小,避免過大的音量對聽力造成損害。接下來就讓小編為大

在如今雲端儲存已成為我們日常生活和工作中不可或缺的一部分。百度網盤作為國內領先的雲端儲存服務之一,憑藉其強大的儲存功能、高效的傳輸速度以及便捷的操作體驗,贏得了廣大用戶的青睞。而且無論你是想要備份重要文件、分享資料,還是在線上觀看影片、聽取音樂,百度網盤都能滿足你的需求。但很多用戶可能對百度網盤app的具體使用方法還不了解,那麼這篇教學就將為大家詳細介紹百度網盤app如何使用,還有疑惑的用戶們就快來跟著本文詳細了解一下吧!百度雲網盤怎麼用:一、安裝首先,下載並安裝百度雲軟體時,請選擇自訂安裝選

網易郵箱,作為中國網友廣泛使用的一種電子郵箱,一直以來以其穩定、高效的服務贏得了用戶的信賴。而網易信箱大師,則是專為手機使用者打造的信箱軟體,它大大簡化了郵件的收發流程,讓我們的郵件處理變得更加便利。那麼網易信箱大師該如何使用,具體又有哪些功能呢,下文中本站小編將為大家帶來詳細的內容介紹,希望能幫助到大家!首先,您可以在手機應用程式商店搜尋並下載網易信箱大師應用程式。在應用寶或百度手機助手中搜尋“網易郵箱大師”,然後按照提示進行安裝即可。下載安裝完成後,我們打開網易郵箱帳號並進行登錄,登入介面如下圖所示

MetaMask(中文也叫小狐狸錢包)是一款免費的、廣受好評的加密錢包軟體。目前,BTCC已支援綁定MetaMask錢包,綁定後可使用MetaMask錢包進行快速登錄,儲值、買幣等,且首次綁定還可獲得20USDT體驗金。在BTCCMetaMask錢包教學中,我們將詳細介紹如何註冊和使用MetaMask,以及如何在BTCC綁定並使用小狐狸錢包。 MetaMask錢包是什麼? MetaMask小狐狸錢包擁有超過3,000萬用戶,是當今最受歡迎的加密貨幣錢包之一。它可免費使用,可作為擴充功能安裝在網絡

本文將向讀者介紹在Win11系統中如何使用命令提示字元(CommandPrompt)來尋找網路介面卡的實體位址(MAC位址)。 MAC位址是網路介面卡(NIC)的唯一標識符,它在網路通訊中扮演著重要角色。透過命令提示符,使用者可以輕鬆地獲取到當前電腦上所有網路適配器的MAC位址信息,這對於網路故障排查、配置網路設定等任務非常有幫助。方法一:使用「命令提示字元」1、按【Win+X】組合鍵,或【右鍵】點選工作列上的【Windows標誌】,在開啟的選單項目中,選擇【執行】;2、執行窗口,輸入【cmd】指令,然

一、概述sar命令透過從系統活動中收集的資料來展示系統的使用報告。這些報告由不同部分組成,每個部分都包含資料類型和收集資料的時間。 sar指令的預設模式顯示存取CPU的各種資源(如使用者、系統、I/O調度等)在不同時間增量下的CPU使用率。此外,它還顯示給定時間段內空閒CPU的百分比。報告底部列出了每個數據點的平均值。 sar預設每10分鐘報告一次收集的數據,但您可以使用各種選項來篩選和調整這些報告。與uptime指令類似,sar指令也可協助您監控CPU的負載狀況。透過sar,您可以了解過度負載發
