-
准備: phalcon-devtools包 下載地址: https://github.com/phalcon/phalcon-devtools
-
解壓到wampserver的www目錄 (xampp 用戶 應該是 htdocs 文件夾 ) <phalcon-devtools 包 多層文件夾 ,建議全部放在phalcon-tools文件夾>
-
配置環境變量
<設置php文件夾路徑(我的php是在D盤的) 和 自己創建的phalcon-tools文件夾路徑(我的是D盤www文件夾)> -
-
-
運行CMD
<切換到wamp/www 新建 phalcon 項目>
<此時已經可以看到完整的項目,框架的結構已經建立>
-
用phpstorm 打開 phalcon 項目 , 進行相關設置
-
點擊 + 號圖標新建命令行工具
-
選擇phalcon-tools目錄
-
選擇Phpstorm中 Tools 菜單 點擊運行命令
-
輸入 phalcon controller --name test ,新建controller
-
命令輸入完畢,可見項目中 controller 文件夾中多個 TestController.php
-
接下來配置,phpstorm 中 phalcon 代碼提示 ,右擊 phpstorm 左側 目錄結構最后一項 External Libraries ,選擇 Configure... 這一項
-
點擊 + 號 , 選擇 Special Other...
-
選擇放置的phalcon-tools文件夾中 /ide/最新版本號/Phalcon
-
到此為止,所有配置已經完畢,盡情享受吧
然后結合文檔例子實際應用:
http://phalcon.ipanta.com/1.3/tools.html#download
我們可以使用Phalcon開發輔助工具生成預先定義的項目架構。 默認情況下,phalcon開發輔助工具會使用apache的mod_rewrite來生成程序的骨架. 要創建項目我們只需要在我們的 web服務器根目錄下輸入如下命令:
$ pwd /Applications/MAMP/htdocs $ phalcon create-project store
執行命令后會生成如下的文檔結構的項目:

我們可以在命令上加 –help 以顯示幫助信息(下面的幫助中的中文是翻譯時加上去的):
Phalcon DevTools (1.2.3)
- Help:
- Creates a project 創建項目
- Usage:
- project [name] [type] [directory] [enable-webtools]
- Arguments: 參數
- help Shows this help text 顯示此幫助信息
- Example 例子
- phalcon project store simple
- Options: 選項
-
--name Name of the new project 新項目的名字 --enable-webtools Determines if webtools should be enabled [optional] 此選項決定了新的項目中是否使用webtools開發輔助組件 --directory=s Base path on which project will be created [optional] 在何外創建項目 --type=s Type of the application to be generated (micro, simple, modules, cli) 應用的種類(微型,簡單,多模塊,console等) --template-path Specify a template path [optional] 指定模板路徑 --use-config-ini Use a ini file as configuration file [optional] 使用ini文件作為配置保存文件 --trace Shows the trace of the framework in case of exception. [optional] 出錯時是否顯示框架的trace信息 --help Shows this help 顯示幫助
我們訪問新生成項目的地址顯示如下:

生成控制器(Generating Controllers)¶
我們可以使用phalcon create-controller –name test或phalcon controller –name test來生成名為test的控制器. 當然要使用此命令當前的執行命令目錄必須為已存在的phalcon項目內.
$ phalcon create-controller --name test
上面的命令會生成如下代碼:
<?php
class TestController extends Phalcon\Mvc\Controller { public function indexAction() { } }
數據庫配置(Preparing Database Settings)¶
當我們使用phalcon的輔助開發工具生成項目時,則生成的配置信息會被放在 app/config/config.ini 文件內。 我們必須要正確的配置連接信息才可生成模型或基本的CRUD操作。 可以在config.ini中進行修改配置信息:
[database]
adapter = Mysql host = "127.0.0.1" username = "root" password = "secret" dbname = "store_db" [phalcon] controllersDir = "../app/controllers/" modelsDir = "../app/models/" viewsDir = "../app/views/" baseUri = "/store/"
生成模型(Generating Models)¶
使用phalcon開發輔助工具我們可以有若干種方式來生成模型。 我人可以有選擇的生成若干個模型或是全部生成。 亦可以指定生成公有屬性或是生成setter和getter方法。
- Options:
-
--name=s Table name 表名 --schema=s Name of the schema. [optional] schema名 --namespace=s Model’s namespace [optional] 模型命名空間 --get-set Attributes will be protected and have setters/getters. [optional] 設置字段訪問屬性為私有 並添加setters/getters方法 --extends=s Model extends the class name supplied [optional] 指定擴展類名 --doc Helps to improve code completion on IDEs [optional] 輔助IDE的自動完成功能 --directory=s Base path on which project will be created [optional] 項目的根目錄 --force Rewrite the model. [optional] 重寫模型 --trace Shows the trace of the framework in case of exception. [optional] 出錯時顯示框架trace信息 --mapcolumn Get some code for map columns. [optional] 生成字映射的代碼
最簡單的生成模型的方式:
$ phalcon model products
$ phalcon model --name tablename
所有的字段設置為公有:
<?php
class Products extends \Phalcon\Mvc\Model { /** * @var integer */ public $id; /** * @var integer */ public $types_id; /** * @var string */ public $name; /** * @var string */ public $price; /** * @var integer */ public $quantity; /** * @var string */ public $status; }
我們可以在生成模型時指定 –get-set 參數以實現對字面的保護, 這樣我們可以在setter/getter方法里執行一些業務邏輯。
<?php
class Products extends \Phalcon\Mvc\Model { /** * @var integer */ protected $id; /** * @var integer */ protected $types_id; /** * @var string */ protected $name; /** * @var string */ protected $price; /** * @var integer */ protected $quantity; /** * @var string */ protected $status; /** * Method to set the value of field id * @param integer $id */ public function setId($id) { $this->id = $id; } /** * Method to set the value of field types_id * @param integer $types_id */ public function setTypesId($types_id) { $this->types_id = $types_id; } ... /** * Returns the value of field status * @return string */ public function getStatus() { return $this->status; } }
另一個非常好的特性即是在我們多次生成模型時,原有的對模型的更改依然會存在。 這樣我們就可以不用擔心對模型的屬性進行修會被后來再次執模型的生成命令所覆蓋。下面的截圖顯示了這是如何工作的:
生成基本的 CRUD(Scaffold a CRUD)¶
使用phalcon開發輔助工具我們可以直接快速的生成一個模型的CRUD操作。 如果我們想快速的生成模型的CRUD操作只需要使用phalcon輔助開發工具的中scaffold命令即可。
代碼生成后,你可以根據自己的需要修改生成的代碼。很多開發者可能不會去使用這個功能,其實這東西有時不是太好用,很多時候開發者往往會手動的書寫相關代碼。使用scaffold產生的代碼可以 幫助我們理解框架是如何工作的當然也可以幫助我們制作出快速原型來。 下面的截圖展示了基於products表的scaffold:
$ phalcon scaffold --table-name test
scaffold生成器會在相關的文件夾中生成若干個文檔。 下面是所生成文件的概覽:
在生成的Products控制器中,我們可以看到一個搜索表單和一個生成新product的鏈接:

在創建頁面我們可以生成經過驗證的Products記錄。 Phalcon會自動的驗證數據庫中的非空字段。

執行搜索后,分頁組件會顯示頒后的結果。 我們在結果列表的前面放置Edit或Delete鏈接,以實現相應的操作。
