Zoeken…


Opmerkingen

Deze sectie geeft een overzicht van wat cakephp-3.0 is en waarom een ontwikkelaar het misschien wil gebruiken.

Het moet ook alle grote onderwerpen binnen cakephp-3.0 vermelden en een link naar de gerelateerde onderwerpen bevatten. Aangezien de documentatie voor cakephp-3.0 nieuw is, moet u mogelijk eerste versies van die gerelateerde onderwerpen maken.

Installatie Cakephp 3.X

Voorwaarden:

  • PHP 5.6.0 of hoger mbstring PHP-extensie (standaard werkt in WAMP / XAMPP, zo niet, schakel het dan in)
  • intl PHP-extensie (beschikbaar in WAMP / XAMPP, u moet deze inschakelen
    van php.ini)
  • CakePHP werkt op verschillende webservers zoals nginx,
  • LightHTTPD of Microsoft IIS.

Voordat u begint, moet u ervoor zorgen dat uw PHP-versie up-to-date is:

php -v

Gebruik Composer om Cakephp 3 Framework te installeren,

Composer is officieel ondersteunde methode voor installatie, dus download composer bij, Composer (Windows / Linux / Mac)

Voer dit uit om cakephp te installeren,

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

Zodra Composer klaar is met het downloaden van het applicatieskelet en de kern CakePHP-bibliotheek, zou een werkende CakePHP-applicatie geïnstalleerd moeten zijn via Composer. Zorg ervoor dat u de bestanden composer.json en composer.lock bewaart met de rest van uw broncode.

Of volg deze eenvoudigste manier om cakephp te installeren

Volg de onderstaande stappen,

  1. ga naar deze Git Repository
  2. Download de cakeDC / oven voor eenvoudige installatie
  3. Pak het zipbestand in de LOCALHOST uit
  4. Geef 777 toestemming voor die map
  5. Voer bestand oven.php uit (beschikbaar in de map)
  6. Een pagina wordt geopend met veel optie, kies optie volgens uw voorkeur
  7. Klik op de afbeelding en leun achterover. Uw project wordt binnen enkele minuten geïnstalleerd

uit te voeren:

bin/cake server

Standaard, zonder enige argumenten, zal dit uw toepassing dienen op http: // localhost: 8765 / .

vuur dit naar je browser, http://example.com/ of http: // localhost: 8765 / . Op dit punt krijgt u de standaard startpagina van CakePHP te zien, en een bericht met de status van uw huidige databaseverbinding en u bent klaar voor uw eerste toepassing.

Volg Cakephp 3.X Installatie voor meer informatie over Installatie en Setup

Project opzetten

Eerst moet u een database maken met mysql , phpMyAdmin , HeidiSQL of een ander instrument om met Database te werken en de gebruiker een nieuwe laten maken.

Na die procedure moet u toegang verlenen tot de database voor het project.

Je moet in het dossier te gaan /path/to/your/project/config/app.php , zo ziet omhoog voor Datasources default . In die array moet u localhost (op aanvraag), user , password en database .

o naar uw browser en pagina vernieuwen. DB-probleem zou verdwenen moeten zijn en het Green Tick aan de linkerkant weergeven.

Gedaan! Je eerste project is opgezet!

Bouw eerst 'Hallo wereld!' applicatie met CakePHP 3.x (Introductie. Deel 1)

CakePHP 3.x heeft de mogelijkheid om controllers , models , views en andere door het raamwerk gedefinieerde objecten te bake .

Opmerking : als je enige ervaring hebt met het Laravel raamwerk, lijkt het artisan onderdeel op bake .

De bake applicatie bevindt zich in de bin map; Hier volgen enkele van de beschikbare opdrachten:

  • bin/cake bake shell %shellName% - om ShellClass te bakken
  • bin/cake bake controller %controllerName% - om controllerklasse te bakken
  • bin/cake bake model %modelName% - om model + entiteitsklasse te bakken
  • bin/cake bake view %viewName% - om te bakken Bekijk sjabloon
  • bin/cake bake all %className% - om controller, model + entiteit, weergave voor ontwikkelaar te bakken.

Opmerking : U kunt het bake model niet bake model als u geen tabellen in uw database hebt

Opmerking : als u bake all componenten bake all , krijgt u Controllers met vooraf gedefinieerde CRUD acties.

Bouw eerst 'Hallo wereld!' applicatie met CakePHP 3.x (migraties van databasetabellen. Deel 2)

U kunt eenvoudig create tabellen voor uw database of drop ze als u wilt. Als u dat wilt doen, moet u leren hoe u Migrations schrijft voor de gewenste database.

Migratiebestanden moeten zich in de map config/Migrations . Bestandsnamen kunnen de volgende formaten hebben:

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

}

Als u migratie wilt uitvoeren, moet u de volgende opdracht uitvoeren:

bin/cake migrations migrate om een tabel (-s) te maken.

Als u wilt terugdraaien:

bin/cake migrations rollback - zal de laatste bin/cake migrations rollback , waar de drop() functie bestaat

bin/cake migrations (-t|--target) all - bin/cake migrations (-t|--target) all alle migraties terug, waar de functie drop() bestaat

Bouw eerst 'Hallo wereld!' applicatie met CakePHP 3.x (Controllers, Response, View. Deel 3)

Wilt u een controller maken? Er zijn 2 manieren om het te maken:

  • Handmatig (u wordt gedwongen om handmatig een Controller-bestand in src/Controller )
  • Gebakken (opdracht bin/cake bake controller %controllerName% van CLI uitvoeren)

Als u het handmatig wilt maken, gaat u naar de map src/Controller en maakt u een bestand met het volgende patroon:

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

In die controller moet u namspace definiëren, die zal worden gebruikt:

<?php
    namespace App\Controller;

Dan moet je het als bestandsnaam noemen, bijv. AdminiController:

use App\Controller\AppController;

class AdminController extends AppController{}

Binnen deze klasse moet u uw eerste methode maken, bijv. login :

public function login(){}

Als u in uw browser typt: http://{{project-name}}/admin/login dit een foutmelding met ontbrekende sjabloon. Hoe dit probleem op te lossen?

U moet maken onder het bestand src/Template/Admin/ login.ctp .

Opmerking : * .ctp-jokerteken - is een cakesjabloonbestand dat wordt gebruikt om gegevens door te geven / te renderen die u instelt via de controller.

Typ in dat bestand gewoon 'Hallo wereld!' waar u maar wilt, vernieuw de pagina met een sjabloonfout en u krijgt uw World , die u begroet!

Opmerking : Standaard wordt src/Template/Layout/default.ctp als layout, als u er geen hebt gedefinieerd

CakePHP 3.4 installeren op CentOS 7 met PHP 7 en SELinux ingeschakeld

Dit heb ik gedaan om CakePHP te installeren op een nieuwe, minimale CentOS 7

  • CentOS-7-x86_64-Minimal-1611.iso geïnstalleerd in VirtualBox, twee netwerkinterfaces: eerste NAT, tweede Host-Only
  • set ONBOOT = ja in / etc / sysconfig / network-scripts / ifcfg-enp0s3
  • reboot
  • jammie update
  • yum installeer net-tools (om ifconfig en netstat te krijgen)
  • yum install wget
  • yum installeer 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-nieuwste-7.noarch.rpm
  • yum-config-manager - remi-php71 inschakelen
  • yum installeer php
  • systemctl httpd inschakelen
  • systemctl start httpd
  • firewall-cmd --permanent --zone = public --add-service = http
  • firewall-cmd --permanent --zone = public --add-service = https
  • firewall-cmd - herladen
  • yum installeer httpd mariadb-server mariadb php phpmyadmin
  • systemctl start mariadb
  • systemctl inschakelen mariadb
  • systemctl herstart httpd
  • yum installeer php-mbstring php-intl
  • mysql_secure_installation
  • curl -s https://getcomposer.org/installer | php
  • cd / var / www / html /
  • php componer.phar create-project --prefer-dist cakephp / app MyApp
  • Chown Apache: -R MyApp /
  • Maak een database:
# 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
  • Maak een bestand /etc/httpd/conf.d/my_app.conf met inhoud:
<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

  • raak /.autorelabel aan; reboot

  • Op mijn host bewerk ik / etc / hosts en voer de regel in (192.168.56.101 is het host-only-ip-adres van mijn VM) 192.168.56.101 cakephp.myapp.net



Modified text is an extract of the original Stack Overflow Documentation
Licentie onder CC BY-SA 3.0
Niet aangesloten bij Stack Overflow