CakePHP テーブルから bake でスケルトンの作成

データベースにテーブルが存在すれば、bakeコマンドでスケルトンを作成してくれる。
スケルトンとは、Model, View ,Controllerの各ファイルのこと。

テーブルは作成されていることとする。

  リンク:CakePHPのチュートリアルより

CREATE TABLE users (
    id INT AUTO_INCREMENT PRIMARY KEY,
    email VARCHAR(255) NOT NULL,
    password VARCHAR(255) NOT NULL,
    created DATETIME,
    modified DATETIME
);

テーブルの規約は、だいたいこんな感じで理解

・テーブル名は、複数形とすること。 artiles
・主キーは id
・createとmodified のDATETIME列をつけてあげる。

リンク:データベースの規約

ここから、bakeの手順

XAMPP Control Panel を起動する。

C:\xampp\xampp-control.exe

XAMPP Control Panel 内の Shell ボタンをクリックする。

アプリケーションのフォルダに移動する。

cd c:\xampp\htdocs\book

bakeコマンドの実行

php bin/cake.php bake all users

以下、ずら~~~と、実行経過、結果が表示される。

Bake All
---------------------------------------------------------------
One moment while associations are detected.

Baking table class for Users...

Creating file C:\xampp\htdocs\book\src\Model\Table\UsersTable.php
Wrote `C:\xampp\htdocs\book\src\Model\Table\UsersTable.php`
Deleted `C:\xampp\htdocs\book\src\Model\Table\empty`

Baking entity class for User...

Creating file C:\xampp\htdocs\book\src\Model\Entity\User.php
Wrote `C:\xampp\htdocs\book\src\Model\Entity\User.php`
Deleted `C:\xampp\htdocs\book\src\Model\Entity\empty`

Baking test fixture for Users...

Creating file C:\xampp\htdocs\book\tests\Fixture\UsersFixture.php
Wrote `C:\xampp\htdocs\book\tests\Fixture\UsersFixture.php`
Deleted `C:\xampp\htdocs\book\tests\Fixture\empty`
Bake is detecting possible fixtures...

Baking test case for App\Model\Table\UsersTable ...

Creating file C:\xampp\htdocs\book\tests\TestCase\Model\Table\UsersTableTest.php
Wrote `C:\xampp\htdocs\book\tests\TestCase\Model\Table\UsersTableTest.php`

Baking controller class for Users...

Creating file C:\xampp\htdocs\book\src\Controller\UsersController.php
Wrote `C:\xampp\htdocs\book\src\Controller\UsersController.php`
Bake is detecting possible fixtures...

Baking test case for App\Controller\UsersController ...

Creating file C:\xampp\htdocs\book\tests\TestCase\Controller\UsersControllerTest.php
Wrote `C:\xampp\htdocs\book\tests\TestCase\Controller\UsersControllerTest.php`

Baking `index` view template file...

Creating file C:\xampp\htdocs\book\src\Template\Users\index.ctp
Wrote `C:\xampp\htdocs\book\src\Template\Users\index.ctp`

Baking `view` view template file...

Creating file C:\xampp\htdocs\book\src\Template\Users\view.ctp
Wrote `C:\xampp\htdocs\book\src\Template\Users\view.ctp`

Baking `add` view template file...

Creating file C:\xampp\htdocs\book\src\Template\Users\add.ctp
Wrote `C:\xampp\htdocs\book\src\Template\Users\add.ctp`

Baking `edit` view template file...

Creating file C:\xampp\htdocs\book\src\Template\Users\edit.ctp
Wrote `C:\xampp\htdocs\book\src\Template\Users\edit.ctp`
Bake All complete.

が表示される。

つまり作成されたのは、
作成されたのは、以下の通り。(testsを除く)

\Model
    \Table\
          UsersTable.php
\Model
      \Entity\
          User.php
\Controller\
          UsersController.php
\Template
      \Users\
          index.ctp
          view.ctp
          add.ctp
          edit.ctp

ブラウザからアクセスする。

 http://localhost/book/users

一覧が表示される!


CakePHP サイトを作る

book サイトを作る

XAMPP Control Panel を起動する。
C:\xampp\xampp-control.exe

XAMPP Control Panel 内の Shell ボタンをクリックする。
XAMPP

シェル(コマンドプロンプト)が起動するので、コマンドを入力する。

cd \xampp\htdocs

composer self-update && composer create-project --prefer-dist cakephp/app book

しばらく待つ。。。

最後に Yes or No を聞かれるので、Enter入力

Set Folder Permissions ? (Default to Y) [Y,n]?

XAMPP Control Panel で、Apache 起動済みであることを確認して、
ブラウザからアクセスする。
http://localhost/book/

VSCODEをコンテキストメニューに追加する

Visual Studio Codeをエクスプローラーでファイル、フォルダを右クリックしたときのメニューに追加する。

レジストリ操作で、3箇所にフォルダを追加した。

[HKEY_CLASSES_ROOT\*\shell\VSCode]
@="VSCodeで開く"
"Icon"="C:\\Program Files\\Microsoft VS Code\\Code.exe"

[HKEY_CLASSES_ROOT\*\shell\VSCode\command]
@="\"C:\\Program Files\\Microsoft VS Code\\Code.exe\" \"%1\""
[HKEY_CLASSES_ROOT\Directory\shell\VSCode]
@="VSCodeで開く"
"Icon"="C:\\Program Files\\Microsoft VS Code\\Code.exe"

[HKEY_CLASSES_ROOT\Directory\shell\VSCode\command]
@="\"C:\\Program Files\\Microsoft VS Code\\Code.exe\" \"%1\""
[HKEY_CLASSES_ROOT\Directory\Background\shell\VSCode]
@="VSCodeで開く"
"Icon"="C:\\Program Files\\Microsoft VS Code\\Code.exe"

[HKEY_CLASSES_ROOT\Directory\Background\shell\VSCode\command]
@="\"C:\\Program Files\\Microsoft VS Code\\Code.exe\" \"%1\""</code>

参考ページ:Windowsコンテキストメニューに「Visual Studio Codeで開く」を追加する
  この参考ページのcommandに”%1″ を付与したところうまくいきました。

VS Code が更新のたびに警告を出力する

---------------------------
エラー
---------------------------
C:\Program Files\Microsoft VS Code\_\api-ms-win-core-datetime-l1-1-0.dll

コピー先のフォルダにファイルを作成中にエラーが発生しました。:
ディレクトリ C:\Program Files\Microsoft VS Code\_ を作成中にエラーが発生しました。.

エラー 5: アクセスが拒否されました。.

もう一度やりなおすには「再試行」、このファイルをスキップして続行するには「無視」(推奨されません)、インストールを中止するには「中止」をクリックしてください。
---------------------------
中止(A)   再試行(R)   無視(I)
---------------------------

フォルダのアクセス権を変更して解決
Users フル
C:\Program Files\Microsoft VS Code

VC++ runtime が必要だったのかもしれない。

CORESERVERでCakePHPを動かす

フォルダの準備

mkdir cakephp
cd cakephp

CakePHP 3.6 Red Velvet Cookbook インストール より
https://book.cakephp.org/3.0/ja/installation.html

composer を持ってくる

$ curl -sS https://getcomposer.org/installer | php

ls コマンドでファイルがダウンロードされたことを確認する

composer.phar

どうやらcomposerは、PHPを指定して実行するようだ。
/usr/local/bin/php71cli composer.phar
参考
https://www.ws-meguro.jp/?tag=coreserver

バージョンを確認する。

-bash-4.2$ /usr/local/bin/php71cli composer.phar -V

Composer version 1.6.5 2018-05-04 11:44:59

プロジェクトを作成

/usr/local/bin/php71cli composer.phar create-project --prefer-dist cakephp/app my_app_name

シンボリックリンクの作成

ln -s ~/cakephp/my_app_name/webroot ~/public_html/my_app_name

ブラウザから確認
http://www.getnext.net/my_app_name/

人工知能がわかる本

人工知能について理解しようとして読んだ本。

まずは入門編

この1冊でまるごとわかる人工知能&IoTビジネス 入門編

そして実践編

この1冊でまるごとわかる 人工知能&IoTビジネス実践編

国民栄誉賞の羽生善治さんから学ぶ

人工知能の核心

話題になっていた本も

AIが人間を殺す日 車、医療、兵器に組み込まれる人工知能