サーチ…


備考

このセクションでは、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をインストールしてください

以下の手順に従って、

  1. このGitリポジトリに行く
  2. 簡単なインストールのためにcakeDC / ovenをダウンロードする
  3. LOCALHOST内のzipファイルを抽出する
  4. そのフォルダに777の権限を与える
  5. ファイルoven.phpを実行する(フォルダ内で利用可能)
  6. ページが開き、多くのオプションがあり、あなたの好みに応じてオプションを選択してください
  7. イメージをクリックして座ってください。あなたのプロジェクトは数分でインストールされます

実行:

bin/cake server

デフォルトでは、引数を指定せずにhttp:// localhost:8765 /にアプリケーションを提供します。

これをブラウザ( http://example.com/またはhttp:// localhost:8765 /)で起動してください。この時点で、CakePHPのデフォルトのホームと、現在のデータベース接続のステータスを示すメッセージが表示され、最初のアプリケーションの準備が整いました。

インストールとセットアップの詳細については、 Cakephp 3.Xのインストール

プロジェクトの設定

まず、 mysqlphpMyAdminHeidiSQLなどのデータベースを使用してデータベースを作成し、新しいデータベースを作成する必要があります。

その手順の後、プロジェクトのデータベースへのアクセスを提供する必要があります。

あなたは/path/to/your/project/config/app.phpファイルに行き、次にDatasources default調べる必要がありdefault 。その配列では、 localhost (オンデマンド)、 userpassword 、およびdatabaseを変更する必要がありdatabase

oあなたのブラウザとページを更新してください。 DBの問題がなくなり、左側にGreen Tick表示されるはずです。

完了!あなたの最初のプロジェクトがセットアップされました!

最初に「Hello World!」を構築するCakePHP 3.xでのアプリケーション(Introduction。Part 1)

CakePHP 3.xには、 controllersmodelsviews 、およびその他のフレームワークで定義されたオブジェクトを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 modelbake 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



Modified text is an extract of the original Stack Overflow Documentation
ライセンスを受けた CC BY-SA 3.0
所属していない Stack Overflow