前言
在 php
中常常會用 namespace 將類別 (Class) 作區隔,然而網路上文章對於在 Phalcon
框架中加入一個新 namespace 的方面沒有太多的著墨,使 Phalcon
入門門檻增加,對新手較不友善。個人也是初次使用 Phalcon
框架,所以會以新手的角度來記錄這個步驟!
環境
創建 namespace 步驟
新增目錄
先在 app 目錄下創建一個目錄,是將來要放新 Class 的地方,我這裡是想要放一些我自己擴展 Phalcon\Forms\Form
的類別,所以目錄取名為 forms
1 2 3 4 5 6 7 8 9 10
| user@pc:/var/www/myProject/app$ tree -L 1 . ├── config ├── controllers ├── dbBackup ├── forms ├── library ├── migrations ├── models └── views
|
新增 config.php
(app/config/config.php
) 之中 application
內的路徑 formsDir
1 2 3 4 5 6 7 8 9 10 11 12
| 'application' => [ 'appDir' => APP_PATH . '/', 'controllersDir' => APP_PATH . '/controllers/', 'modelsDir' => APP_PATH . '/models/', 'migrationsDir' => APP_PATH . '/migrations/', 'viewsDir' => APP_PATH . '/views/', 'pluginsDir' => APP_PATH . '/plugins/', 'libraryDir' => APP_PATH . '/library/', 'formsDir' => APP_PATH . '/forms/', 'cacheDir' => BASE_PATH . '/cache/', 'baseUri' => '/', ]
|
註冊 namespace
要註冊新增的 namesapce,這個動作在 loader.php
(app/config/loader.php
)內完成,Array 中的 Key (e.g.:'AccountSystem\Forms'
) 依自己喜歡,不與其它 Key 撞名即可!
1 2 3 4 5 6 7 8 9 10 11 12
| $loader->registerNamespaces( [ 'AccountSystem\Models' => $config->application->modelsDir, 'AccountSystem\Forms' => $config->application->formsDir, ] )->register(); $loader->registerDirs( [ $config->application->controllersDir, $config->application->modelsDir ] )->register();
|
完成與測試
這樣就算是新增完成囉!只要在 app/forms
目錄下的類別中,最前面加上 namespace AccountSystem\Forms;
,在其它的文件就可以調用 AccountSystem\Forms\SignUpForm
了喔!
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
| <?php
namespace AccountSystem\Forms;
use Phalcon\Forms\Element\Date; use Phalcon\Forms\Element\Password; use Phalcon\Forms\Form; use Phalcon\Forms\Element\Text; use Phalcon\Forms\Element\Select;
class SignUpForm extends Form { ... } ?>
|