Phalcon提供的這個開發工具主要是用來輔助開發,比如生成一些程序的基本框架,生成控制器模型等。使用這個工具我們只需要一個簡單的命令即可生成應用的基本框架。
如果你喜歡使用web版而非console版本的程序,那么在這里 blog post 可以看到更多的內容。
下載(Download)
我們可以從 Github 上下載或克隆下來這個跨平臺的開發輔助工具。
安裝(Installation)
下面詳盡的說明了如何在不同的操作系統平臺上安裝這個輔助開發工具:
Windows 系統下使用 Phalcon 開發工具(Phalcon Developer Tools on Windows)
Mac OS X 系統下使用 Phalcon 開發工具(Phalcon Developer Tools on Mac OS X)
Linux 系統下使用 Phalcon 開發工具(Phalcon Developer Tools on Linux)
獲取可用的命令(Getting Available Commands)
我們可以在虛擬控制臺上輸入如下命令: phalcon commands
~~~
$ phalcon commands
Phalcon DevTools (3.0.0)
Available commands:可用命令
commands (alias of: list, enumerate)
controller (alias of: create-controller)
module (alias of: create-module)
model (alias of: create-model)
all-models (alias of: create-all-models)
project (alias of: create-project)
scaffold (alias of: create-scaffold)
migration (alias of: create-migration)
webtools (alias of: create-webtools)
~~~
生成項目框架(Generating a Project Skeleton)
我們可以使用Phalcon開發輔助工具生成預先定義的項目架構。 默認情況下,phalcon開發輔助工具會使用apache的mod_rewrite來生成程序的骨架. 要創建項目我們只需要在我們的 web服務器根目錄下輸入如下命令:
~~~
$ pwd
/Applications/MAMP/htdocs
$ phalcon create-project store
~~~
執行命令后會生成如下的文檔結構的項目:

我們可以在命令上加 –help 以顯示幫助信息(下面的幫助中的中文是翻譯時加上去的):
~~~
$ phalcon project --help
Phalcon DevTools (3.0.0)
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 (cli, micro, simple, modules) 應用的種類(微型,簡單,多模塊,console等)
--template-path=s 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
use Phalcon\Mvc\Controller;
class TestController extends 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] 生成字映射的代碼 |
| --abstract | Abstract Model [optional] 抽象模型 |
最簡單的生成模型的方式:
~~~
$ phalcon model products
~~~
~~~
$ phalcon model --name tablename
~~~
所有的字段設置為公有:
~~~
<?php
use Phalcon\Mvc\Model;
class Products extends Model
{
/**
* @var integer
*/
public $id;
/**
* @var integer
*/
public $typesId;
/**
* @var string
*/
public $name;
/**
* @var string
*/
public $price;
/**
* @var integer
*/
public $quantity;
/**
* @var string
*/
public $status;
}
~~~
我們可以在生成模型時指定 –get-set 參數以實現對字面的保護, 這樣我們可以在setter/getter方法里執行一些業務邏輯。
~~~
<?php
use Phalcon\Mvc\Model;
class Products extends Model
{
/**
* @var integer
*/
protected $id;
/**
* @var integer
*/
protected $typesId;
/**
* @var string
*/
protected $name;
/**
* @var string
*/
protected $price;
/**
* @var integer
*/
protected $quantity;
/**
* @var string
*/
protected $status;
/**
* 設置字段 id 值的方法
*
* @param integer $id
*/
public function setId($id)
{
$this->id = $id;
}
/**
* 設置字段 typsId 值的方法
*
* @param integer $typesId
*/
public function setTypesId($typesId)
{
$this->typesId = $typesId;
}
// ...
/**
* 返回字段 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 products
~~~
scaffold生成器會在相關的文件夾中生成若干個文檔。 下面是所生成文件的概覽:
在生成的Products控制器中,我們可以看到一個搜索表單和一個生成新product的鏈接:

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

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

工具的 Web 界面(Web Interface to Tools)
另外,如果你喜歡我們還可以在生成項目時通過添加參數以實現在項目中使用Phalcon開發工具的web接口。
集成工具到 PhpStorm(Integrating Tools with PhpStorm IDE)
結束語(Conclusion)
Phalcon開發輔助工具為我們提供了一種簡易的產生應用代碼的方法, 這可以減少開發時間及潛在的錯誤。
- Welcome
- 安裝
- XAMPP 下的安裝
- WAMP 下安裝
- Apache 安裝說明
- Nginx 安裝說明
- Cherokee 安裝說明
- 使用 PHP 內置 web 服務器
- Phalcon 開發工具
- Windows 系統下使用 Phalcon 開發工具
- Mac OS X 系統下使用 Phalcon 開發工具
- Linux 系統下使用 Phalcon 開發工具
- 教程 1:讓我們通過例子來學習
- 教程 2:INVO簡介
- 教程 3: 保護INVO
- 教程4: 使用CRUD
- 教程5: 定制INVO
- 教程6: V?kuró
- 教程 7:創建簡單的 REST API
- 依賴注入與服務定位器(Dependency Injection/Service Location)
- MVC 架構(The MVC Architecture)
- 使用控制器(Using Controllers)
- 使用模型(Working with Models)
- 模型關系(Model Relationships)
- 模型事件(Model Events)
- 模型行為(Model Behaviors)
- 模型元數據(Models Metadata)
- 事務管理(Model Transactions)
- 模型驗證(Validating Models)
- Working with Models (Advanced)
- Phalcon 查詢語言(Phalcon Query Language (PHQL))
- 緩存對象關系映射(Caching in the ORM)
- 對象文檔映射 ODM (Object-Document Mapper)
- 使用視圖(Using Views)
- 視圖助手 (Tags)(View Helpers (Tags))