Поиск…


замечания

В этом разделе представлен обзор того, что такое cakephp-3.0, и почему разработчик может захотеть его использовать.

Следует также упомянуть любые крупные темы в cakephp-3.0 и ссылки на связанные темы. Поскольку документация для cakephp-3.0 является новой, вам может потребоваться создать начальные версии этих связанных тем.

Установка Cakephp 3.X

Требования:

  • PHP 5.6.0 или выше Расширение PHP (по умолчанию работает в WAMP / XAMPP, если нет, тогда включите его)
  • intl PHP extension (доступно в WAMP / XAMPP, вы должны включить его
    от php.ini)
  • CakePHP будет работать на различных веб-серверах, таких как nginx,
  • LightHTTPD или Microsoft IIS.

Перед запуском вы должны убедиться, что ваша версия PHP обновлена:

php -v

Используйте Composer для установки Cakephp 3 Framework,

Композитор является официально поддерживаемым методом для установки, поэтому скачать композитор на, Composer (Windows / Linux / Mac)

Запустите это, чтобы установить cakephp,

php composer.phar create-project --prefer-dist cakephp/app my_app_name

Когда Composer закончит загрузку скелета приложения и базовой библиотеки CakePHP, у вас должно быть установлено приложение CakePHP, установленное через Composer. Обязательно сохраняйте файлы composer.json и composer.lock вместе с остальной частью исходного кода.

Или следуйте этому самому простому способу установки cakephp

Следуйте приведенным ниже шагам,

  1. перейдите в этот репозиторий Git
  2. Загрузите cakeDC / печь для легкой установки
  3. Извлечь zip-файл внутри LOCALHOST
  4. Предоставить разрешение 777 этой папке
  5. Запустите файл oven.php (доступно внутри папки)
  6. Страница откроется с большим количеством опций, выберите вариант в соответствии с вашими предпочтениями
  7. Нажмите на изображение и откиньтесь назад. Ваш проект будет установлен через пару минут

выполнить:

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 . В этом массиве вам нужно изменить localhost (по требованию), user , password и database .

o на ваш браузер и обновите страницу. Проблема с БД должна исчезнуть и показать Green Tick на левой стороне.

Готово! Ваш первый проект был настроен!

Создайте первый «Hello World!» приложение с CakePHP 3.x (Введение. Часть 1)

CakePHP 3.x имеет возможность bake controllers , models , views и другие объекты, определенные каркасом.

Примечание . Если у вас был некоторый опыт работы с базой 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% - испечь View template
  • bin/cake bake all %className% - испечь контроллер, модель + сущность, представление для разработчика.

Примечание . Вы не сможете bake model если в вашей базе данных нет таблиц

Примечание . Если вы bake all компоненты, вы получите Controllers с заранее определенными действиями CRUD .

Создайте первый «Hello World!» приложение с CakePHP 3.x (миграции таблиц базы данных. Часть 2)

Вы можете легко create таблицы для своей базы данных или drop их, если хотите. Если вы хотите это сделать, вы должны научиться писать 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 rollback - вернет последнюю миграцию, где функция drop() существует

bin/cake migrations (-t|--target) all - вернет все миграции, где функция drop() существует

Создайте первый «Hello World!» приложение с CakePHP 3.x (контроллеры, ответ, просмотр. часть 3)

Хотите создать контроллер? Существует два способа его создания:

  • Вручную (вы будете вынуждены вручную создать файл контроллера в src/Controller )
  • Запеченный ( bin/cake bake controller %controllerName% от CLI)

Если вы хотите создать его вручную, перейдите в папку src/Controller и создайте файл, следующий за следующим шаблоном:

([AZ]{1}[az]{1,})Controller.php

В этом контроллере вы должны определить namspace , который будет использоваться:

<?php
    namespace App\Controller;

Затем вы должны называть его именем файла, например. AdminiController:

use App\Controller\AppController;

class AdminController extends AppController{}

Внутри этого класса вы должны создать свой первый метод, например. login :

public function login(){}

Если вы наберете свой браузер: http://{{project-name}}/admin/login он выведет ошибку пропущенного шаблона. Как решить эту проблему?

Вам необходимо создать файл src/Template/Admin/ login.ctp .

Примечание : * .ctp wildcard - это файл шаблона Cake, который используется для передачи / отображения данных, которые вы устанавливаете через контроллер.

В этом файле просто введите «Hello World!» где вы хотите, обновите страницу с ошибкой шаблона, и вы получите свой World , который вас приветствует!

Примечание . По умолчанию src/Template/Layout/default.ctp выполняет рендеринг как макет, если вы не определили его

Установка CakePHP 3.4 на CentOS 7 с поддержкой PHP 7 и SELinux

Это то, что я сделал, чтобы установить CakePHP на новый установленный минимальный CentOS 7

  • Установлен CentOS-7-x86_64-Minimal-1611.iso в VirtualBox, два сетевых интерфейса: первый NAT, второй Host-Only
  • установить ONBOOT = yes в / etc / sysconfig / network-scripts / ifcfg-enp0s3
  • перезагружать
  • Обновление 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 -последний-7.noarch.rpm
  • yum-config-manager --enable remi-php71
  • yum install php
  • systemctl включить httpd
  • systemctl start httpd
  • firewall-cmd -permanent --zone = public -add-service = http
  • firewall-cmd -permanent --zone = public -add-service = https
  • firewall-cmd --reload
  • yum install httpd mariadb-server mariadb php phpmyadmin
  • systemctl start mariadb
  • systemctl включить 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 - это только адрес хоста для моей виртуальной машины) 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