■ cakePHP 環境構築&プロジェクト作成
1.XAMAPP インストール
2.php_intl.dll 有効化 C:\xampp\php\php.ini 上記のphp.iniファイルをテキストエディタで開くと、899行目あたりに以下の記述があります。;extension=php_intl.dll先頭にセミコロン(;)があることでコメントアウトされているので、セミコロンを消して以下のように有効化しておきます。extension=php_intl.dll
3.composerインストール
4.cd htdoc
5.cakePHP プロジェクト作成 composer create-project --prefer-dist cakephp/app [プロジェクト名]
■ 会員登録 CakeDC pulgin 導入
1. cd [プロジェクト名]
2. composer require cakedc/users
3. config/bootstrap.phpに以下を追加します。 plugin::load('CakeDC/Users', ['routes' => true, 'bootstrap' => true]);
4. DB接続情報設定 config/app.php: 'Datasources' => [....'username' => 'my_app','password' => 'secret','database' => 'my_app',
5.DB table 生成 bin\cake migrations migrate -p CakeDC/Usersbin\cake users addSuperuser
6. モジュールLoad
src/Controller/AppController.php
public function initialize() {
parent::initialize();
// ... //
$this->loadComponent('CakeDC/Users.UsersAuth');
}
7.config/app.php ERROR警告Option設定
'errorLevel' => E_ALL & ~E_USER_DEPRECATED,
8. http://localhost/[プロジェクト名]
Login画面表示:
📷
ユーザないのでsuperadminでlogin
参考URL http://g2-girichan.hatenablog.com/entry/2017/07/06/201512
■ 新規アプリ雛形生成
1.
CREATE TABLE bookmarks ( id INT AUTO_INCREMENT PRIMARY KEY, user_id INT NOT NULL, -->user_id VARCHAR(36) NOT NULL,CakeDC/user usersに合わせるように変更 title VARCHAR(50), description TEXT, url TEXT, created DATETIME, modified DATETIME, FOREIGN KEY user_key (user_id) REFERENCES users(id));
2.
bin\cake bake all bookmarks
※ViewからCakeDC/userのcontroller参照方法
<li><?= $this->Html->link(__('List Users'), ['plugin' => 'CakeDC/Users','controller' => 'Users', 'action' => 'index']) ?> </li>
3. アプリ雛形のindexは認証から外す(Loginしなくてもアクセス可)
<BookmarksController.php>
use Cake\Event\Event;
public function beforeFilter(Event $event) {
parent::beforeFilter($event);
$this->Auth->allow(['index']); }
4.アプリひな形は/ ホームページ設定
<routes.php>
//$routes->connect('/', ['controller' => 'Pages', 'action' => 'display', 'home']);
$routes->connect('/', ['controller' => 'Bookmarks', 'action' => 'index', 'index']);
5. http://localhost/[プロジェクト名]/ をアクセスとひな形アプリが表示する。
6.ログインか、しないかサイトバーメニューが違う設定
<?php if(is_null($checkUser)){ ?>
<li class="heading"><?= __('need login') ?></li>
<li><?= $this->Html->link(__('Login'), ['plugin' => 'CakeDC/Users','controller' => 'Users', 'action' => 'login']) ?></li>
<li><?= $this->Html->link(__('Register'), ['plugin' => 'CakeDC/Users','controller' => 'Users', 'action' => 'add']) ?></li>
<?php }else{ ?>
<li class="heading"><?= __('Bookmarks') ?></li> <li><?= $this->Html->link(__('List Bookmarks'), ['action' => 'index']) ?> </li> <li><?= $this->Html->link(__('New Bookmark'), ['action' => 'add']) ?> </li> <li><?= $this->Html->link(__('List Users'), ['plugin' => 'CakeDC/Users','controller' => 'Users', 'action' => 'index']) ?></li> <li><?= $this->Html->link(__('Logout'), ['plugin' => 'CakeDC/Users','controller' => 'Users', 'action' => 'logout']) ?></li>
<?php } ?>
ログイン前:
📷
ログイン後:
📷
■ CakePHP 以外のデザインテンプレート適用
1. BootStrap 下記参考:https://qiita.com/soichinakatake/items/e3d34b050699c1915b69
2. 他のWEB builder、フルーテンプレートなどHTMLベースソースの適用
2.1 CSS、Font、JS、Imgなど 「プロジェクト名」\webroot下に置く
2.2 .html Head部分のlink、css、javascriptの定義参照「プロジェクト名」\src\Template\Layout\default.ctpに移動 注意点: ●link,script参照は必ず$this->Html->css使用 <head> <?= $this->Html->css('/assets/css/bootstrap.min.css') ?> <?= $this->Html->css('/assets/font-awesome/4.5.0/css/font-awesome.min.css') ?> <?= $this->Html->css('/assets/css/jquery-ui.min.css') ?> <?= $this->Html->script('/assets/js/html5shiv.min.js') ?> <?= $this->Html->script('/assets/js/respond.min.js') ?> <?= $this->Html->script('//code.jquery.com/jquery-1.11.0.min.js') ?> <?= $this->Html->script('//code.jquery.com/jquery-migrate-1.2.1.min.js') ?> <?= $this->fetch('meta') ?><?= $this->fetch('css') ?> <?= $this->fetch('script') ?>
</head>
●cakephp
3.デイフオルトサイトバーがあるのレイアウトになって、画面狭い。全画面設定方法:container col-md-12 <body style="background-color:white;">
<?= $this->Flash->render() ?> <div class="container col-md-12"> <?= $this->fetch('content') ?> </div> <footer> </footer> </body>
■作成サイト参考
http://taiho1086.s1004.xrea.com/en