[Phalcon] 新增一個自己的namespace!
在php中常常會用namespace將類別(Class)作區隔,對新手來說,網路上在加入一個新namespace的方面沒有一個較清楚的說明。且因個人也是新手,所以會以新手的角度來記錄這個步驟!
(環境:Phalcon 4.0.3)
- 先在app資料夾下創一個資料夾,是將來要放新的Class的地方,我這裡是想要放一些我自己擴展"Phalcon\Forms\Form"的類別,所以資料夾取名為"forms"
user@pc:/var/www/myProject/app$ tree -L 1 . ├── config ├── controllers ├── dbBackup ├── forms ├── library ├── migrations ├── models └── views
- 新增config.php(app/config/config.php)之中的application內的路徑
'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' => '/', ]
- 要註冊新增的namesapce,這個動作在loader.php(app/config/loader.php)內完成,Array中的Key(e.g.:'AccountSystem\Forms')是自己喜歡,不與人撞名即可!
$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"了喔!
<?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 { ... } ?>
留言
張貼留言