Sök…


Anmärkningar

Det här avsnittet ger en översikt över vad cakephp-3.0 är, och varför en utvecklare kanske vill använda den.

Den bör också nämna alla stora ämnen inom cakephp-3.0 och länka till relaterade ämnen. Eftersom dokumentationen för cakephp-3.0 är ny kan du behöva skapa initialversioner av relaterade ämnen.

Installation Cakephp 3.X

Krav:

  • PHP 5.6.0 eller högre mbstring PHP-förlängning (standard fungerar i WAMP / XAMPP, om inte, aktivera det sedan)
  • intl PHP-förlängning (finns i WAMP / XAMPP, du måste aktivera det
    från php.ini)
  • CakePHP kommer att köras på olika webbservrar som nginx,
  • LightHTTPD eller Microsoft IIS.

Innan du börjar bör du se till att din PHP-version är uppdaterad:

php -v

Använd Composer för att installera Cakephp 3 Framework,

Composer är officiellt stödd metod för installation, så ladda ner kompositör på, Composer (Windows / Linux / Mac)

Kör detta för att installera cakephp,

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

När Composer är klar med att ladda ner applikationsskelettet och kärnan CakePHP-biblioteket bör du ha ett fungerande CakePHP-program installerat via Composer. Var noga med att hålla filerna composer.json och composer.lock med resten av din källkod.

Eller följ detta enklaste sättet att installera cakephp

Följ bälgen steg,

  1. gå till detta Git-arkiv
  2. Ladda ner cakeDC / ugnen för enkel installation
  3. Extrahera zip-filen inuti LOCALHOST
  4. Ge 777 tillstånd till den mappen
  5. Kör fil oven.php (finns i mappen)
  6. En sida öppnas med många alternativ, välj alternativ enligt dina önskemål
  7. Klicka på bilden och luta dig tillbaka. Ditt projekt kommer att installeras om några minuter

Kör:

bin/cake server

Som standard, utan några anförda argument, kommer detta att fungera som din ansökan på http: // localhost: 8765 / .

avfyra detta i din webbläsare, http://example.com/ eller http: // localhost: 8765 / . Vid denna tidpunkt kommer du att presenteras med CakePHPs standardhem och ett meddelande som säger statusen för din nuvarande databasanslutning och du är redo för din första ansökan.

För mer information om installation och installation, följ Cakephp 3.X Installation

Ställa in projekt

Först bör du skapa databas med mysql , phpMyAdmin , HeidiSQL eller andra instrument för att arbeta med databasen och låta användaren skapa en ny.

Efter det förfarandet bör du ge tillgång till databas för projekt.

Du måste gå in i filen /path/to/your/project/config/app.php och sedan leta efter default för Datasources . I den arrayen måste du ändra localhost (on demand), user , password och database .

o till din webbläsare och uppdatera sidan. DB-frågan bör gå och visa Green Tick på vänster sida.

Gjort! Ditt första projekt har skapats!

Bygg upp första "Hello World!" applikation med CakePHP 3.x (Introduktion. Del 1)

CakePHP 3.x har förmågan att bake controllers , models , views och andra ramdefinierade objekt.

Obs : Om du har haft lite erfarenhet av Laravel ramverket, liknar den artisan komponenten att bake .

bake applikationen finns i bin mappen; följande är några av de tillgängliga kommandona:

  • bin/cake bake shell %shellName% - för att baka ShellClass
  • bin/cake bake controller %controllerName% - för att baka Controller Class
  • bin/cake bake model %modelName% - för att baka modell + enhetsklass
  • bin/cake bake view %viewName% - för att baka Visa mall
  • bin/cake bake all %className% - för att baka Controller, Model + Enhet, Visa för utvecklare.

Obs : Du kommer inte att kunna bake model om du inte har några tabeller i din databas

Obs! Om du bake all komponenter får du Controllers med fördefinierade CRUD åtgärder.

Bygg upp första "Hello World!" applikation med CakePHP 3.x (Migrering av databastabeller. Del 2)

Du kan enkelt create tabeller för din databas eller drop dem om du vill. Om du vill göra det bör du lära dig att skriva Migrations för önskad databas.

Migrationsfiler måste finnas i mappen config/Migrations . Filnamn kan vara i nästa format:

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

}

Om du vill köra migrering måste du köra nästa kommando:

bin/cake migrations migrate att skapa tabell (-er).

Om du vill återuppta:

bin/cake migrations rollback - kommer att återställa den sista migreringen, där drop() -funktionen finns

bin/cake migrations (-t|--target) all - kommer att återställa alla migrationer, där drop() -funktionen finns

Bygg upp första "Hello World!" applikation med CakePHP 3.x (Controllers, Response, View. Del 3)

Vill du skapa en controller? Det finns två sätt att skapa det:

  • Manuellt (du kommer att tvingas skapa manuellt Controller-fil i src/Controller )
  • Bakat (Kör bin/cake bake controller %controllerName% kommando från CLI)

Om du vill skapa den manuellt, gå till mappen src/Controller och skapa en fil som följer nästa mönster:

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

I den kontrollenheten bör du definiera namspace , som kommer att användas:

<?php
    namespace App\Controller;

Då ska du namnge det som filnamn, ex. AdminiController:

use App\Controller\AppController;

class AdminController extends AppController{}

Inom denna klass bör du skapa din första metod, ex. login :

public function login(){}

Om du skriver i din webbläsare: http://{{project-name}}/admin/login kommer det att kasta ett fel som saknas mall. Hur löser du detta problem?

Du måste skapa under src/Template/Admin/ login.ctp .

Obs! * .Ctp jokertecken - är kakamallfil, som använder för att skicka / återge data som du ställer in via regulatorn.

I den filen skriver du bara "Hello World!" där du vill, uppdatera sidan med mallfel och du får din World , det hälsar dig!

Obs! Som standard src/Template/Layout/default.ctp som layout om du inte definierar en

Installera CakePHP 3.4 på CentOS 7 med PHP 7 och SELinux aktiverat

Det här är vad jag gjorde för att installera CakePHP på en nyinstallerad minimal CentOS 7

  • Installerade en CentOS-7-x86_64-Minimal-1611.iso i VirtualBox, två nätverksgränssnitt: första NAT, andra Host-Only
  • ställa in ONBOOT = ja i / etc / sysconfig / nätverksskript / ifcfg-enp0s3
  • omstart
  • yum uppdatering
  • yum installera netverktyg (för att få ifconfig och netstat)
  • yum installera wget
  • yum installera 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-senaste-7.noarch.rpm
  • yum-config-manager - aktiverbar remi-php71
  • yum installera php
  • systemctl aktivera httpd
  • systemctl start httpd
  • brandvägg-cmd --permanent - zone = public --add-service = http
  • brandvägg-cmd --permanent - zone = public --add-service = https
  • brandvägg-cmd - ladda om
  • yum installera httpd mariadb-server mariadb php phpmyadmin
  • systemctl start mariadb
  • systemctl enable mariadb
  • systemctl starta om httpd
  • yum installera 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 /
  • Skapa databas:
# 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
  • Skapa fil /etc/httpd/conf.d/my_app.conf med innehåll:
<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 - typ = httpd_user_content_rw_t tmp

  • touch /.autorelabel; omstart

  • På min värd redigerar jag / etc / hosts och skriver in raden (192.168.56.101 är värd-ip-adressen för min VM) 192.168.56.101 cakephp.myapp.net



Modified text is an extract of the original Stack Overflow Documentation
Licensierat under CC BY-SA 3.0
Inte anslutet till Stack Overflow