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/ |