libro
www.tuyano.com
初心者のためのCakePHP3 プログラミング入門

Webアプリケーション作成の基本を覚えよう (5/6)

作成:2015-08-15 09:07
更新:2015-08-15 09:07

■プロジェクトの設定について

これで、プロジェクトの基本的な構成もわかりました。後は、いよいよプログラミングのやり方を覚えていくだけ……といいたいところですが、その前に、「プロジェクトの設定」について触れておきましょう。

プロジェクトの設定は、「config」フォルダの中にあります。この中にある「app.php」というファイルをテキストエディタで開いてください。これが、このプロジェクト全体の動作に関する設定情報を記述したファイルです。

かなり長いテキストが書かれていますが、その多くはコメント文です。コメント類を全てカットすると、下のリスト欄のようになります。

これは、整理すると、配列をreturnするだけのものなのですが、用意されている配列の内容が非常に多くの項目から構成されているため、ものすごく複雑に見えてしまいます。これは、String値をキーとする連想配列になっているのです。保管されているキーを整理すると、こうなっていることがわかるでしょう。
return [ 
    'debug'=> true,
    'App' => 配列,
    'Security' => 配列,
    'Asset' => 配列,
    'Cache' => 配列,
    'Error' => 配列,
    'EmailTransport' => 配列,
    'Email' => 配列,
    'Datasources' => 配列,
    'Log' => 配列,
    'Session' => 配列
]

それぞれのキーのところに、必要な設定情報が用意されています。たいていは、やはり連想配列の形になっていて、設定値のキーとその値がまとめられています。

もちろん、これらの内容を今すぐすべて理解する必要はまったくありません。ただ、「どのようにしてプロジェクトの設定がまとめられているか」という、このapp.phpの値の構造(どうやってさまざまな値を設定しているか)さえわかっていればOKです。

※プログラムリストが表示されない場合

AddBlockなどの広告ブロックツールがONになっていると、プログラムリスト等が表示されない場合があります。これらのツールをOFFにしてみてください。

●プログラム・リスト●

<?php
return [
    'debug' => true,

    'App' => [
        'namespace' => 'App',
        'encoding' => 'UTF-8',
        'base' => false,
        'dir' => 'src',
        'webroot' => 'webroot',
        'wwwRoot' => WWW_ROOT,
        // 'baseUrl' => env('SCRIPT_NAME'),
        'fullBaseUrl' => false,
        'imageBaseUrl' => 'img/',
        'cssBaseUrl' => 'css/',
        'jsBaseUrl' => 'js/',
        'paths' => [
            'plugins' => [ROOT . DS . 'plugins' . DS],
            'templates' => [APP . 'Template' . DS],
            'locales' => [APP . 'Locale' . DS],
        ],
    ],

    'Security' => [
        'salt' => '0912f7aa51b280285e9e37ba5c7d057ec59b8e765e2c55e7419efbdd29f90fde',
    ],

    'Asset' => [
        // 'timestamp' => true,
    ],

    'Cache' => [
        'default' => [
            'className' => 'File',
            'path' => CACHE,
        ],

        '_cake_core_' => [
            'className' => 'File',
            'prefix' => 'myapp_cake_core_',
            'path' => CACHE . 'persistent/',
            'serialize' => true,
            'duration' => '+2 minutes',
        ],

        '_cake_model_' => [
            'className' => 'File',
            'prefix' => 'myapp_cake_model_',
            'path' => CACHE . 'models/',
            'serialize' => true,
            'duration' => '+2 minutes',
        ],
    ],

    'Error' => [
        'errorLevel' => E_ALL & ~E_DEPRECATED,
        'exceptionRenderer' => 'Cake\Error\ExceptionRenderer',
        'skipLog' => [],
        'log' => true,
        'trace' => true,
    ],

    'EmailTransport' => [
        'default' => [
            'className' => 'Mail',
            // The following keys are used in SMTP transports
            'host' => 'localhost',
            'port' => 25,
            'timeout' => 30,
            'username' => 'user',
            'password' => 'secret',
            'client' => null,
            'tls' => null,
        ],
    ],

    'Email' => [
        'default' => [
            'transport' => 'default',
            'from' => 'you@localhost',
            //'charset' => 'utf-8',
            //'headerCharset' => 'utf-8',
        ],
    ],

    'Datasources' => [
        'default' => [
            'className' => 'Cake\Database\Connection',
            'driver' => 'Cake\Database\Driver\Mysql',
            'persistent' => false,
            'host' => 'localhost',
            //'port' => 'nonstandard_port_number',
            'username' => 'my_app',
            'password' => 'secret',
            'database' => 'my_app',
            'encoding' => 'utf8',
            'timezone' => 'UTC',
            'cacheMetadata' => true,

            'quoteIdentifiers' => false,

            //'init' => ['SET GLOBAL innodb_stats_on_metadata = 0'],
        ],

        'test' => [
            'className' => 'Cake\Database\Connection',
            'driver' => 'Cake\Database\Driver\Mysql',
            'persistent' => false,
            'host' => 'localhost',
            //'port' => 'nonstandard_port_number',
            'username' => 'my_app',
            'password' => 'secret',
            'database' => 'test_myapp',
            'encoding' => 'utf8',
            'timezone' => 'UTC',
            'cacheMetadata' => true,
            'quoteIdentifiers' => false,
            //'init' => ['SET GLOBAL innodb_stats_on_metadata = 0'],
        ],
    ],

    'Log' => [
        'debug' => [
            'className' => 'Cake\Log\Engine\FileLog',
            'path' => LOGS,
            'file' => 'debug',
            'levels' => ['notice', 'info', 'debug'],
        ],
        'error' => [
            'className' => 'Cake\Log\Engine\FileLog',
            'path' => LOGS,
            'file' => 'error',
            'levels' => ['warning', 'error', 'critical', 'alert', 'emergency'],
        ],
    ],

    'Session' => [
        'defaults' => 'php',
    ],
];
※関連コンテンツ

「初心者のためのCakePHP3 プログラミング入門」に戻る