|
1 | 1 | 応用インストール |
2 | 2 | ################ |
3 | 3 |
|
| 4 | +PEARインストーラでCakePHPをインストール |
| 5 | +======================================= |
| 6 | + |
| 7 | +CakePHPはあなたがPEARインストーラを使用してインストールできるようにPEARパッケージを公開しています。 |
| 8 | +PEARインストーラでインストールすると、複数のアプリケーションでCakePHPライブラリを共有するのが簡単になります。 |
| 9 | +PEARでCakePHPをインストールするには、次の手順を実行する必要があります:: |
| 10 | + |
| 11 | + pear channel-discover pear.cakephp.org |
| 12 | + pear install cakephp/CakePHP |
| 13 | + |
| 14 | +.. note:: |
| 15 | + |
| 16 | + PEARでCakePHPをインストールするとき、システムによっては ``sudo`` が必要になります。 |
| 17 | + |
| 18 | +PEARでCakePHPをインストールした後、PEARが正しく設定されていれば、 |
| 19 | +新しいアプリケーションを作成するために ``cake`` コマンドが使えるようになっています。 |
| 20 | +CakePHPはPHPの ``include_path`` 上に配置されるので、とくに他の変更を行う必要はありません。 |
| 21 | + |
| 22 | + |
| 23 | +ComposerでCekePHPをインストール |
| 24 | +=============================== |
| 25 | + |
| 26 | +Composerは、PHP 5.3以上向けの依存関係管理ツールです。 |
| 27 | +これは、PEARインストーラが抱える問題の多くを解決し、いろんなバージョンのライブラリをシンプルに管理できるようにします。 |
| 28 | +CakePHPはPEARパッケージを公開しているので、 `composer <http://getcomposer.org>`_ を使用してCakePHPをインストールすることができます。 |
| 29 | +CakePHPをインストールする前に ``composer.json`` ファイルをセットアップしましょう。 |
| 30 | +CakePHPアプリケーションのための composer.json ファイルは次のようになります:: |
| 31 | + |
| 32 | + { |
| 33 | + "name": "example-app", |
| 34 | + "repositories": [ |
| 35 | + { |
| 36 | + "type": "pear", |
| 37 | + "url": "http://pear.cakephp.org" |
| 38 | + } |
| 39 | + ], |
| 40 | + "require": { |
| 41 | + "pear-cakephp/cakephp": ">=2.3.4" |
| 42 | + }, |
| 43 | + "config": { |
| 44 | + "vendor-dir": "Vendor/" |
| 45 | + } |
| 46 | + } |
| 47 | + |
| 48 | +このJSONを ``composer.json`` としてプロジェクトのルートディレクトリに保存します。 |
| 49 | +次に、composer.pharファイルをダウンロードしてきます。 |
| 50 | +composerをダウンロードしたら、 CakePHPをインストールしましょう。 |
| 51 | +``composer.json`` と同じディレクトリで次のコマンドを実行します:: |
| 52 | + |
| 53 | + $ php composer.phar install |
| 54 | + |
| 55 | +composerの実行が終わると、ディレクトリ構造は次のようになっていると思います:: |
| 56 | + |
| 57 | + example-app/ |
| 58 | + composer.phar |
| 59 | + composer.json |
| 60 | + Vendor/ |
| 61 | + bin/ |
| 62 | + autoload.php |
| 63 | + composer/ |
| 64 | + pear-pear.cakephp.org/ |
| 65 | + |
| 66 | +さあ、アプリケーションのスケルトンの残りの部分を生成する準備ができました:: |
| 67 | + |
| 68 | + $ Vendor/bin/cake bake project <path to project> |
| 69 | + |
| 70 | +デフォルトでは、 ``bake`` は :php:const:`CAKE_CORE_INCLUDE_PATH` をハードコードするようになっています。 |
| 71 | +アプリケーションの移植性を高めるためには、 ``webroot/index.php`` を修正し、 |
| 72 | +``CAKE_CORE_INCLUDE_PATH`` を相対パスに変更しましょう:: |
| 73 | + |
| 74 | + define( |
| 75 | + 'CAKE_CORE_INCLUDE_PATH', |
| 76 | + ROOT . DS . APP_DIR . '/Vendor/pear-pear.cakephp.org/CakePHP' |
| 77 | + ); |
| 78 | + |
| 79 | +composerで他のライブラリをインストールしている場合は、 |
| 80 | +オートローダーを設定してcomposerのオートローダーで起こる問題を回避してください。 |
| 81 | +``Config/bootstrap.php`` ファイルに次の行を追加します:: |
| 82 | + |
| 83 | + // composerのautoloadを読み込み |
| 84 | + require APP . '/Vendor/autoload.php'; |
| 85 | + |
| 86 | + // CakePHPのオートローダーをいったん削除し、composerより先に評価されるように先頭に追加する |
| 87 | + // https://github.com/composer/composer/commit/c80cb76b9b5082ecc3e5b53b1050f76bb27b127b を参照 |
| 88 | + spl_autoload_unregister(array('App', 'load')); |
| 89 | + spl_autoload_register(array('App', 'load'), true, true); |
| 90 | + |
| 91 | +これで、composerでインストールしたCakePHPが機能するCakePHPアプリケーションができました。 |
| 92 | +ソースコードの残りの部分とcomposer.jsonとcomposer.lockファイルを保存しておいてください。 |
| 93 | + |
| 94 | + |
| 95 | +複数のアプリケーションでCakePHPを共有する |
| 96 | +========================================= |
| 97 | + |
4 | 98 | 時には、CakePHPのディレクトリをファイルシステムの別な場所に配置したいと思う場合があるかもしれません。 |
5 | 99 | 共有しているホストの制限であったり、複数のアプリが同じCakeのライブラリを使うようにしたかったりする場合などです。 |
6 | 100 | このセクションでは、どうやってCakePHPのディレクトリをファイルシステム内に分散配置できるのかを説明します。 |
7 | 101 |
|
8 | 102 | まず、Cakeアプリケーションには三つの主要な部分があることに注意しましょう: |
9 | 103 |
|
10 | | - |
11 | 104 | #. CakePHPのコアライブラリは、 /lib/Cakeの中にあります。 |
12 | 105 | #. アプリケーションコードは、/appの中です。 |
13 | 106 | #. アプリケーションのウェブルートは、通常、/app/webrootにあります。 |
@@ -39,21 +132,21 @@ CakePHPを次のような条件で動作させたいとします: |
39 | 132 |
|
40 | 133 | このようなセットアップの場合には、 webroot/index.phpファイル(つまり、この例では/var/www/mysite/index.php)が次のようになるよう、編集します:: |
41 | 134 |
|
42 | | - // /app/webroot/index.php (一部分。コメントは取り除いてあります。) |
43 | | - |
| 135 | + // /app/webroot/index.php (一部分。コメントは取り除いてあります。) |
| 136 | + |
44 | 137 | if (!defined('ROOT')) { |
45 | 138 | define('ROOT', DS . 'home' . DS . 'me'); |
46 | 139 | } |
47 | | - |
| 140 | + |
48 | 141 | if (!defined('APP_DIR')) { |
49 | 142 | define ('APP_DIR', 'myapp'); |
50 | 143 | } |
51 | | - |
| 144 | + |
52 | 145 | if (!defined('CAKE_CORE_INCLUDE_PATH')) { |
53 | 146 | define('CAKE_CORE_INCLUDE_PATH', DS . 'usr' . DS . 'lib'); |
54 | 147 | } |
55 | 148 |
|
56 | | -ファイルパスの区切り文字には、スラッシュではなく ``DS`` 定数を使うようにお勧めします。 |
| 149 | +ファイルパスの区切り文字には、スラッシュではなく ``DS`` 定数を使うのがオススメです。 |
57 | 150 | こうしておくと、間違った区切り文字による、ファイルが無いというエラーを防ぐことができ、コードをさまざまなプラットフォームで動くようにすることができます。 |
58 | 151 |
|
59 | 152 | Apacheとmod\_rewrite(と.htaccess) |
|
0 commit comments