[Phalcon] 新增一個自己的namespace!

在php中常常會用namespace將類別(Class)作區隔,對新手來說,網路上在加入一個新namespace的方面沒有一個較清楚的說明。且因個人也是新手,所以會以新手的角度來記錄這個步驟!

(環境:Phalcon 4.0.3)
  1. 先在app資料夾下創一個資料夾,是將來要放新的Class的地方,我這裡是想要放一些我自己擴展"Phalcon\Forms\Form"的類別,所以資料夾取名為"forms"
    user@pc:/var/www/myProject/app$ tree -L 1
    .
    ├── config
    ├── controllers
    ├── dbBackup
    ├── forms
    ├── library
    ├── migrations
    ├── models
    └── views
    
  2. 新增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'        => '/',
        ]   
    
    
  3. 要註冊新增的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();
    
    
  4. 這樣就算是新增完成囉!只要在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
    {
    ...
    }
    ?>
    

留言

這個網誌中的熱門文章

[Hyper-V] 讓 Windows 可以吃到超過 16TB 的硬碟!