cakephp-3.0 チュートリアル
cakephp-3.0を使い始める
サーチ…
備考
このセクションでは、cakephp-3.0の概要と、なぜ開発者がそれを使いたいのかを概説します。
また、cakephp-3.0内の大きなテーマについても触れ、関連するトピックにリンクしてください。 cakephp-3.0のドキュメンテーションは新しいものなので、それらの関連トピックの初期バージョンを作成する必要があるかもしれません。
インストールCakephp 3.X
要件:
- PHP 5.6.0以上mbstring PHP拡張機能(デフォルトでWAMP / XAMPPで動作していない場合は有効にする)
- intl PHP拡張モジュール(WAMP / XAMPPで利用可能、あなたはそれを有効にする必要があります
php.iniから) - CakePHPは、nginx、
- LightHTTPD、またはMicrosoft IIS。
起動する前にPHPのバージョンが最新であることを確認する必要があります:
php -v
Composerを使ってCakephp 3 Frameworkをインストールし、
Composerは正式にはインストール方法としてサポートされているため、 Composer(Windows / Linux / Mac)で作曲家をダウンロードし、
これを実行してcakephpをインストールし、
php composer.phar create-project --prefer-dist cakephp/app my_app_name
ComposerがアプリケーションスケルトンとコアCakePHPライブラリのダウンロードを完了したら、Composer経由で機能するCakePHPアプリケーションをインストールする必要があります。 composer.jsonファイルとcomposer.lockファイルは、残りのソースコードと一緒に保管してください。
または、この簡単な方法でcakephpをインストールしてください
以下の手順に従って、
- このGitリポジトリに行く
- 簡単なインストールのためにcakeDC / ovenをダウンロードする
- LOCALHOST内のzipファイルを抽出する
- そのフォルダに777の権限を与える
- ファイルoven.phpを実行する(フォルダ内で利用可能)
- ページが開き、多くのオプションがあり、あなたの好みに応じてオプションを選択してください
- イメージをクリックして座ってください。あなたのプロジェクトは数分でインストールされます
実行:
bin/cake server
デフォルトでは、引数を指定せずにhttp:// localhost:8765 /にアプリケーションを提供します。
これをブラウザ( http://example.com/またはhttp:// localhost:8765 /)で起動してください。この時点で、CakePHPのデフォルトのホームと、現在のデータベース接続のステータスを示すメッセージが表示され、最初のアプリケーションの準備が整いました。
インストールとセットアップの詳細については、 Cakephp 3.Xのインストール
プロジェクトの設定
まず、 mysql 、 phpMyAdmin 、 HeidiSQLなどのデータベースを使用してデータベースを作成し、新しいデータベースを作成する必要があります。
その手順の後、プロジェクトのデータベースへのアクセスを提供する必要があります。
あなたは/path/to/your/project/config/app.phpファイルに行き、次にDatasources default調べる必要がありdefault 。その配列では、 localhost (オンデマンド)、 user 、 password 、およびdatabaseを変更する必要がありdatabase 。
oあなたのブラウザとページを更新してください。 DBの問題がなくなり、左側にGreen Tick表示されるはずです。
完了!あなたの最初のプロジェクトがセットアップされました!
最初に「Hello World!」を構築するCakePHP 3.xでのアプリケーション(Introduction。Part 1)
CakePHP 3.xには、 controllers 、 models 、 views 、およびその他のフレームワークで定義されたオブジェクトをbake機能があります。
注 :
Laravelフレームワークの経験がある場合、artisanコンポーネントはbake似ています。
bakeアプリケーションはbinフォルダにあります。利用可能なコマンドのいくつかを次に示します。
-
bin/cake bake shell %shellName%- ShellClassをベークする -
bin/cake bake controller %controllerName%- コントローラクラスをベークする -
bin/cake bake model %modelName%- ベーキングモデル+エンティティクラス -
bin/cake bake view %viewName%- ベークビューテンプレート -
bin/cake bake all %className%- コントローラ、モデル+エンティティ、開発者のためのビューを焼く。
注 :データベースにテーブルがない場合、
bake modelをbake modelことはできません
注意 :
bake allコンポーネントをbake allすると、あらかじめ定義されたCRUDアクションを持つControllersが取得されControllers。
最初に「Hello World!」を構築するCakePHP 3.xによるアプリケーション(データベーステーブルの移行、第2部)
データベースのテーブルを簡単にcreateたり、必要に応じてdropすることができcreate 。そうしたい場合は、目的のデータベースのMigrations方法を学習する必要があります。
移行ファイルは、 config/Migrationsフォルダに格納されている必要があります。ファイル名は次の形式にすることができます:
-
YYYYMMDDHHIISS_(Create|Alter|Delete)AdministratorsTable.php -
(1-9){1,}_(Create|Alter|Delete)AdministratorsTable.php
<?php
use Migrations\AbstractMigration;
use Cake\Log\Log;
/**
* Class AdministratorsTableMigration
*/
class AdministratorsTableMigration extends AbstractMigration
{
/**
* @var string
*/
private $_tableName;
/**
* @var string
*/
private $_tablePrefix;
public function init()
{
$this->_tableName = '"Administrators"';
$this->_tablePrefix = 'administrators';
}
public function up()
{
Log::info("Trying to create {$this->_tableName} table");
$administratorsTable = $this->table($this->_tablePrefix);
if ($administratorsTable->exists()) {
return Log::warning("Table {$this->_tableName} already exists");
}
$administratorsTable
->addPrimaryKey('id')
->addColumn('username', 'char', [
'length' => 25,
'null' => false
])
->addColumn('password', 'char', [
'length' => 255,
'null' => false
])
->addColumn('email', 'char', [
'length' => 50,
'null' => false
])
->addColumn('first_name', 'char', [
'length' => 50,
'null' => false
])
->addColumn('last_name', 'char', [
'length' => 50,
'null' => false
])
->addColumn('avatar', 'char', [
'length' => 255,
'default' => '/img/no-avatar.png'
])
->addColumn('active', 'boolean', [
'default' => 0
])
->addTimestamps()
->create();
return Log::notice("Table {$this->_tableName} has been created");
}
public function down()
{
if ($this->table($this->_tablePrefix)->exists()) {
$this->table($this->_tablePrefix)->drop();
return Log::info("Table {$this->_tableName} has been dropped");
}
return Log::warning("Table {$this->_tableName} does not exists");
}
}
移行を実行する場合は、次のコマンドを実行する必要があります。
bin/cake migrations migrateテーブル(-s)を作成するためにbin/cake migrations migrateします。
ロールバックしたい場合:
bin/cake migrations rollback - 最後の移行を元に戻します。ここではdrop()関数が存在します
bin/cake migrations (-t|--target) all - drop()関数が存在するすべての移行を元に戻します
最初に「Hello World!」を構築するCakePHP 3.xによるアプリケーション(コントローラ、レスポンス、ビュー、パート3)
コントローラを作成したいですか?それを作成するには2つの方法があります:
- 手動で(コントローラファイルを
src/Controllerに手動で作成する必要がありsrc/Controller) - 焼き(
bin/cake bake controller %controllerName%コマンドをCLIから実行)
手動で作成する場合は、 src/Controllerフォルダに移動し、次のパターンに従ってファイルを作成します。
([AZ]{1}[az]{1,})Controller.php
そのコントローラでは、 namspaceを定義して使用する必要があります。
<?php
namespace App\Controller;
それからあなたはファイル名、ex。 AdminiController:
use App\Controller\AppController;
class AdminController extends AppController{}
このクラスの中で、最初のメソッドを作成する必要があります。 login :
public function login(){}
ブラウザにhttp://{{project-name}}/admin/loginと入力すると、テンプレートが見つからないというエラーが表示されます。この問題を解決するには?
src/Template/Admin/ login.ctpファイルの下に作成する必要があります。
注 :* .ctpワイルドカード - データを渡したりレンダリングするために使用するCake Templateファイルです。コントローラを介して設定します。
そのファイルに「Hello World!」と入力します。テンプレートエラーでページをリフレッシュし、あなたのWorldを手に入れ、あなたを歓迎します!
注 :デフォルトでは、
src/Template/Layout/default.ctpはレイアウトとしてレンダリングされます。
PHP 7とSELinuxが有効なCentOS 7にCakePHP 3.4をインストールする
これは、新しくインストールした最小限のCentOS 7にCakePHPをインストールしたのです
- VirtualBoxにCentOS-7-x86_64-Minimal-1611.isoをインストールしました。最初のNAT、2番目のホストオンリー
- / etc / sysconfig / network-scripts / ifcfg-enp0s3にONBOOT = yesを設定してください
- リブート
- yumの更新
- yum install net-tools(ifconfigとnetstatを入手するため)
- yum install wget
- yum install yum-utils
- wget -q http://rpms.remirepo.net/enterprise/remi-release-7.rpm
- wget -q https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
- rpm -Uvh remi-release-7.rpm epel-release-latest-7.noarch.rpm
- yum-config-manager --enable remi-php71
- yumはPHPをインストールする
- systemctl enable httpd
- systemctl start httpd
- firewall-cmd --permanent --zone = public --add-service = http
- firewall-cmd --permanent --zone = public --add-service = https
- firewall-cmd --reload
- yumは、httpd mariadb-server mariadb php phpmyadminをインストールします。
- systemctl start mariadb
- systemctl enable mariadb
- systemctl restart httpd
- yum install php-mbstring php-intl
- mysql_secure_installation
- curl -s https://getcomposer.org/installer | PHP
- cd / var / www / html /
- php composer.phar create-project --prefer-dist cakephp / app MyApp
- chown apache:-R MyApp /
- データベースの作成:
# mysql -u root -p
Enter password:
mysql> CREATE DATABASE mydb;
mysql> GRANT ALL ON mydb.* to 'myuser'@'localhost' IDENTIFIED BY '_password_';
mysql> FLUSH PRIVILEGES;
mysql> quit
- コンテンツを含む/etc/httpd/conf.d/my_app.confファイルを作成します。
<VirtualHost *:80>
ServerAdmin root@localhost
ServerName cakephp.myapp.net
DocumentRoot /var/www/html/MyApp
<Directory /var/www/html/MyApp>
Allowoverride All
</Directory>
</VirtualHost>
cd / var / www / html / secure_logging; chcon -Rv --type = httpd_user_content_rw_t tmp
touch /.autorelabel;リブート
私のホスト上で/ etc / hostsを編集し、行を入力します(192.168.56.101は私のVMのホスト専用ipアドレスです)
192.168.56.101 cakephp.myapp.net
ToDo:データベース接続ファイルを編集します。