Suche…


Bemerkungen

In diesem Abschnitt erhalten Sie einen Überblick darüber, was cakephp-3.0 ist und warum ein Entwickler es verwenden möchte.

Es sollte auch alle großen Themen in cakephp-3.0 erwähnen und auf die verwandten Themen verweisen. Da die Dokumentation für cakephp-3.0 neu ist, müssen Sie möglicherweise erste Versionen dieser verwandten Themen erstellen.

Installation von Cakephp 3.X

Bedarf:

  • PHP 5.6.0 oder höher mbstring PHP-Erweiterung (Standardeinstellung in WAMP / XAMPP, wenn nicht, dann aktivieren Sie es)
  • intl PHP extension (Verfügbar in WAMP / XAMPP, müssen Sie es aktivieren
    aus php.ini)
  • CakePHP kann auf verschiedenen Webservern wie Nginx,
  • LightHTTPD oder Microsoft IIS.

Bevor Sie beginnen, sollten Sie sicherstellen, dass Ihre PHP-Version auf dem neuesten Stand ist:

php -v

Verwenden Sie Composer, um Cakephp 3 Framework zu installieren.

Composer ist offiziell unterstützte Methode für die Installation. Laden Sie Composer daher unter Composer (Windows / Linux / Mac) herunter.

Führen Sie dies aus, um cakephp zu installieren.

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

Nachdem Composer das Anwendungsskelett und die Kern-CakePHP-Bibliothek heruntergeladen hat, sollte eine funktionierende CakePHP-Anwendung über Composer installiert sein. Stellen Sie sicher, dass die Dateien composer.json und composer.lock zusammen mit dem restlichen Quellcode aufbewahrt werden.

Oder folgen Sie dieser einfachsten Methode, um cakephp zu installieren

Folgen Sie den unten aufgeführten Schritten.

  1. Gehe zu diesem Git Repository
  2. Laden Sie den cakeDC / Ofen für die einfache Installation herunter
  3. Extrahieren Sie die ZIP-Datei im LOCALHOST
  4. Erteilen Sie diesem Ordner die Berechtigung 777
  5. Führen Sie die Datei oven.php aus (im Ordner verfügbar).
  6. Eine Seite wird mit vielen Optionen geöffnet. Wählen Sie die gewünschte Option aus
  7. Klicken Sie auf das Bild und lehnen Sie sich zurück. Ihr Projekt wird in wenigen Minuten installiert

ausführen:

bin/cake server

Standardmäßig wird dies ohne Angabe von Argumenten für Ihre Anwendung unter http: // localhost: 8765 / bereitgestellt.

feuern Sie dies an Ihrem Browser ab, http://example.com/ oder http: // localhost: 8765 / . An dieser Stelle werden Sie mit der Standard-Startseite von CakePHP und einer Nachricht angezeigt, die Sie über den Status Ihrer aktuellen Datenbankverbindung informiert und Sie sind bereit für Ihre erste Anwendung.

Weitere Informationen zu Installation und Setup finden Sie unter Cakephp 3.X Installation

Projekt einrichten

Zunächst sollten Sie eine Datenbank mit mysql , phpMyAdmin , HeidiSQL oder einem anderen Instrument erstellen, um mit Database arbeiten zu können, und dem Benutzer das Erstellen neuer ermöglichen.

Nach dieser Prozedur sollten Sie Zugriff auf die Datenbank für das Projekt gewähren.

Sie müssen in die Datei /path/to/your/project/config/app.php und dann nach Datasources default suchen. In diesem Array müssen Sie localhost (bei Bedarf), user , password und database ändern.

o Zu Ihrem Browser und zur Aktualisierungsseite. Die DB-Ausgabe sollte verschwunden sein und auf der linken Seite das Green Tick zeigen.

Erledigt! Ihr erstes Projekt wurde eingerichtet!

Baue zuerst "Hallo Welt!" Anwendung mit CakePHP 3.x (Einführung. Teil 1)

CakePHP 3.x kann controllers , models , views und andere im Framework definierte Objekte bake .

Hinweis : Wenn Sie Erfahrung mit dem Laravel Framework haben, ähnelt die artisan dem bake .

Die bake Anwendung befindet sich im Ordner bin . Im Folgenden sind einige der verfügbaren Befehle aufgeführt:

  • bin/cake bake shell %shellName% - um ShellClass zu backen
  • bin/cake bake controller %controllerName% - um Controller-Klasse zu backen
  • bin/cake bake model %modelName% - zum Backen von Model + Entity Class
  • bin/cake bake view %viewName% - backen Sie die View-Vorlage
  • bin/cake bake all %className% - um Controller, Model + Entity, View für Entwickler zu backen.

Hinweis : Wenn Sie keine Tabellen in Ihrer Datenbank haben, können Sie das bake model nicht bake model

Hinweis : Wenn Sie bake all Komponenten bake all , erhalten Sie Controllers mit vordefinierten CRUD Aktionen.

Baue zuerst "Hallo Welt!" Anwendung mit CakePHP 3.x (Datenbank-Tabellenmigrationen. Teil 2)

Sie können auf einfache Weise Tabellen für Ihre Datenbank create oder sie drop , wenn Sie möchten. Wenn Sie das möchten, sollten Sie lernen, Migrations für die gewünschte Datenbank zu schreiben.

Migrationsdateien müssen sich im Ordner config/Migrations . Dateinamen können in folgenden Formaten vorliegen:

  • 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");
    }

}

Wenn Sie die Migration ausführen möchten, müssen Sie den nächsten Befehl ausführen:

bin/cake migrations migrate , um eine Tabelle (-s) zu erstellen.

Wenn Sie einen Rollback ausführen möchten:

bin/cake migrations rollback - Die letzte Migration wird rückgängig gemacht, wenn die drop() Funktion vorhanden ist

bin/cake migrations (-t|--target) all - setzt alle Migrationen zurück, bei denen die drop() Funktion vorhanden ist

Baue zuerst "Hallo Welt!" Anwendung mit CakePHP 3.x (Controller, Response, View. Teil 3)

Möchten Sie einen Controller erstellen? Es gibt zwei Möglichkeiten, es zu erstellen:

  • Manuell (Sie müssen die Controller-Datei manuell in src/Controller erstellen.)
  • Baked (Ausführen des Befehls bin/cake bake controller %controllerName% Befehlszeilenschnittstelle)

Wenn Sie es manuell erstellen möchten, gehen Sie in den Ordner src/Controller und erstellen Sie eine Datei mit folgendem nächsten Muster:

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

In diesem Controller müssen Sie den namspace definieren, der verwendet wird:

<?php
    namespace App\Controller;

Dann sollten Sie es als Dateiname angeben, z. AdminiController:

use App\Controller\AppController;

class AdminController extends AppController{}

Innerhalb dieser Klasse sollten Sie Ihre erste Methode erstellen, z. login :

public function login(){}

Wenn Sie in Ihren Browser http://{{project-name}}/admin/login eingeben: http://{{project-name}}/admin/login , wird eine Fehlermeldung wegen fehlender Vorlage ausgegeben. Wie löse ich dieses Problem?

Sie müssen unter src/Template/Admin/ login.ctp Datei erstellen.

Hinweis : * .ctp-Platzhalter - ist eine Cake-Vorlagendatei, die zum Weitergeben / Rendern von Daten verwendet wird, die Sie über den Controller einstellen.

Geben Sie in dieser Datei einfach "Hallo Welt!" wo Sie wollen, aktualisieren Sie die Seite mit Template-Fehler und Sie erhalten Ihre World , die Sie begrüßt!

Hinweis : Standardmäßig wird src/Template/Layout/default.ctp als Layout gerendert, wenn Sie keines definiert haben

Installation von CakePHP 3.4 auf CentOS 7 mit aktiviertem PHP 7 und SELinux

So habe ich CakePHP auf einem frisch installierten minimalen CentOS 7 installiert

  • Installierte ein CentOS-7-x86_64-Minimal-1611.iso in VirtualBox, zwei Netzwerkschnittstellen: erstes NAT, zweites Host-Only
  • Setzen Sie ONBOOT = yes in / etc / sysconfig / network-scripts / ifcfg-enp0s3
  • Neustart
  • yum Update
  • yum install net-tools (um ifconfig und netstat zu erhalten)
  • yum installiere wget
  • yum installiere 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 - aktiviert den remi-php71
  • yum install php
  • systemctl httpd aktivieren
  • 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 aktivieren mariadb
  • Starten Sie httpd neu
  • 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 /
  • Datenbank erstellen:
# 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
  • Erstellen Sie die Datei /etc/httpd/conf.d/my_app.conf mit Inhalt:
<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; Neustart

  • Auf meinem Host bearbeite ich / etc / hosts und gebe die Zeile ein (192.168.56.101 ist die Host-Only-IP-Adresse meiner VM) 192.168.56.101 cakephp.myapp.net



Modified text is an extract of the original Stack Overflow Documentation
Lizenziert unter CC BY-SA 3.0
Nicht angeschlossen an Stack Overflow