2016/2/12 久米
ComposerとはPHPのライブラリ(パッケージとも言う)をプロジェクト単位に管理するツールです。
的確に必要なライブラリをインストールしたり、アップデートしたりできます。(主にgitからダウンロードされる)
プロジェクト単位なので、OS全体に反映はされません。これはメリットの方が大きいです。
以下アドミンアカウントでログインが必要
変数 | 値 |
HTTP_PROXY | http://proxy00.jec.ac.jp:8080 |
HTTPS_PROXY | http://proxy00.jec.ac.jp:8080 |
第1章のところでも紹介したが、CakePHP3から標準的インストールはComposerを使用するインストールになった。
実際にComposerを使用してインストールしてみる。
今回はcaketest9という新たなプロジェクト(アプリケーション)を作ってみる。
あとでもいいが、phpMyAdminにてcaketest9という名前のDBを作っておく。
コマンドプロンプトで、下記を実行
C:\Users\kume>cd C:\xampp\htdocs C:\xampp\htdocs>composer create-project --prefer-dist cakephp/app web3/caketest9 |
これで本体インストール完了。
画像アップロードプラグイン cakemanager/cakephp-utils をインストールする
C:\xampp\htdocs\web3\caketest9のフォルダにあるcomposer.jsonに
インストールしたいプラグインを記述。
下記青字を追加 カンマを忘れずに。
{ "name": "cakephp/app", "description": "CakePHP skeleton app", "homepage": "http://cakephp.org", "type": "project", "license": "MIT", "require": { "php": ">=5.4.16", "cakephp/cakephp": "~3.1", "mobiledetect/mobiledetectlib": "2.*", "cakephp/migrations": "~1.0", "cakephp/plugin-installer": "*", "cakemanager/cakephp-utils": "dev-master" }, "require-dev": { "psy/psysh": "@stable", "cakephp/debug_kit": "~3.2", |
コマンドプロンプトで、下記を実行
C:\Users\kume>cd C:\xampp\htdocs\web3\caketest9 C:\xampp\htdocs\web3\caketest9>composer update You are running composer with xdebug enabled. This has a major impact on runtime performance. See https://getcomposer.org/xdebug Loading composer repositories with package information Updating dependencies (including require-dev) - Installing cakemanager/cakephp-utils (dev-master e9ca228) Cloning e9ca228ccfe3bb1fe756a99d408838500e1c8002 Failed to download cakemanager/cakephp-utils from source: Failed to clone gi t@github.com:cakemanager/cakephp-utils.git, git was not found, check that it is installed and in your PATH env. 'git' は、内部コマンドまたは外部コマンド、 操作可能なプログラムまたはバッチ ファイルとして認識されていません。 Now trying to download from dist - Installing cakemanager/cakephp-utils (dev-master e9ca228) Loading from cache Writing lock file Generating autoload files > Cake\Composer\Installer\PluginInstaller::postAutoloadDump C:\xampp\htdocs\web3\caketest> |
C:\xampp\htdocs\web3\caketest9\vendorフォルダの中に
\cakemanager\cakephp-utilsがインストールされているのを確認
C:\xampp\htdocs\web3\caketest2\config\bootstrap.php に下記を記述。プラグインロード命令。
//Plugin::loadAll(); Plugin::load('Utils'); |
これでプラグインcakemanager/cakephp-utilsインストール完了。
上記でインストールした画像投稿プラグインを使用し、画像掲示板を作ってみる。
まず、下記のようなテーブル作成
CREATE TABLE IF NOT EXISTS `neko_gazos` ( `id` int(11) NOT NULL AUTO_INCREMENT, `title` varchar(64) NOT NULL, `photo` varchar(255) DEFAULT NULL, `photo_url` varchar(255) DEFAULT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; |
ファイル | コード例 | 備考 | |
C | src>Controller> NekoGazosController.php |
NekoChansを改良 |
|
M | src>Model>Table> NekoGazosTable.php |
<?php namespace App\Model\Table; use Cake\ORM\Table; class NekoGazosTable extends Table { public function initialize(array $config) { $this->primaryKey('id'); $this->addBehavior('Utils.Uploadable', [ 'photo' => [ 'field' => 'id', 'path' => '{ROOT}{DS}{WEBROOT}{DS}uploads{DS}{model}{DS}', 'fileName' => '{field}.{extension}' ,'fields' => [ 'url' => 'photo_url', 'filePath' => 'photo' ], ], ]); } } |
|
V その1 |
src>Template>NekoGazos> index.ctp |
<h1>猫画像</h1> <p><?= $this->Html->link('画像投稿', '/neko-gazos/add/') ?></p> <div> <?php foreach($nekoGazos as $nekoGazo): ?> <?= $this->Html->image($nekoGazo->photo_url, ['alt' => h($nekoGazo->title), 'width' => 200]) ?> <?php endforeach; ?> </div> |
|
V その2 |
src>Template>NekoGazos> add.ctp |
<?php echo $this->Form->create('NekoGazo', ['type' => 'file']); ?> <?php echo $this->Form->input('title'); ?> <?php echo $this->Form->input('photo', ['type' => 'file']); ?> <?= $this->Form->button('投稿') ?> <?php echo $this->Form->end(); ?> |
|
アクセス | http://localhost/web3/caketest/neko-gazos/ |