Szukaj…


Uwagi

Ta sekcja zawiera przegląd tego, czym jest cakephp-3.0 i dlaczego deweloper może chcieć go użyć.

Powinien również wymieniać wszelkie duże tematy w programie cakephp-3.0 i link do powiązanych tematów. Ponieważ Dokumentacja dla cakephp-3.0 jest nowa, może być konieczne utworzenie początkowych wersji tych pokrewnych tematów.

Instalacja Cakephp 3.X

Wymagania:

  • Rozszerzenie PHP w wersji 5.6.0 lub nowszej mbstring PHP (domyślnie działa w WAMP / XAMPP, jeśli nie, włącz je)
  • intl rozszerzenie PHP (dostępne w WAMP / XAMPP, musisz je włączyć
    z php.ini)
  • CakePHP będzie działać na różnych serwerach internetowych, takich jak nginx,
  • LightHTTPD lub Microsoft IIS.

Przed rozpoczęciem upewnij się, że Twoja wersja PHP jest aktualna:

php -v

Użyj Composer, aby zainstalować Cakephp 3 Framework,

Composer jest oficjalnie obsługiwaną metodą instalacji, więc pobierz kompozytora z Composer (Windows / Linux / Mac)

Uruchom to, aby zainstalować cakephp,

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

Gdy Composer zakończy pobieranie szkieletu aplikacji i podstawowej biblioteki CakePHP, powinieneś mieć działającą aplikację CakePHP zainstalowaną przez Composer. Pamiętaj, aby zachować pliki composer.json i composer.lock z resztą kodu źródłowego.

Lub skorzystaj z tego najprostszego sposobu, aby zainstalować cakephp

Postępuj zgodnie z poniższymi krokami,

  1. przejdź do tego repozytorium Git
  2. Pobierz CakeDC / piekarnik dla łatwej instalacji
  3. Wyodrębnij plik zip w LOCALHOST
  4. Udziel 777 uprawnień do tego folderu
  5. Uruchom plik piekarnik.php (dostępny w folderze)
  6. Otworzy się strona z wieloma opcjami, wybierz opcję zgodnie z własnymi preferencjami
  7. Kliknij obraz i usiądź. Twój projekt zostanie zainstalowany za kilka minut

wykonać:

bin/cake server

Domyślnie, bez podanych argumentów, będzie to służyć twojej aplikacji pod adresem http: // localhost: 8765 / .

uruchom to w przeglądarce, http://example.com/ lub http: // localhost: 8765 / . W tym momencie zostanie wyświetlony domyślny dom CakePHP i komunikat informujący o stanie bieżącego połączenia z bazą danych i jesteś gotowy na pierwszą aplikację.

Aby uzyskać więcej informacji na temat instalacji i instalacji, patrz Cakephp 3.X Instalacja

Konfigurowanie projektu

Najpierw powinieneś utworzyć bazę danych z mysql , phpMyAdmin , HeidiSQL lub innymi instrumentami do pracy z bazą danych i pozwolić użytkownikowi na utworzenie nowej.

Po tej procedurze należy zapewnić dostęp do bazy danych dla projektu.

Musisz przejść do pliku /path/to/your/project/config/app.php , a następnie poszukać default Datasources . W tej tablicy musisz zmienić localhost (na żądanie), user , password i database .

o do przeglądarki i odśwież stronę. Problem DB powinien zniknąć i pokazać Green Tick po lewej stronie.

Gotowy! Twój pierwszy projekt został skonfigurowany!

Zbuduj najpierw „Witaj świecie!” aplikacja z CakePHP 3.x (Wprowadzenie. Część 1)

CakePHP 3.x ma możliwość bake controllers , models , views i innych obiektów zdefiniowanych w frameworku.

Uwaga : Jeśli masz pewne doświadczenie z frameworkiem Laravel , komponent artisan jest podobny do bake .

Aplikacja do bake znajduje się w folderze bin ; Oto niektóre z dostępnych poleceń:

  • bin/cake bake shell %shellName% - do pieczenia ShellClass
  • bin/cake bake controller %controllerName% - upiec klasę kontrolera
  • bin/cake bake model %modelName% - do pieczenia Model + Klasa jednostki
  • bin/cake bake view %viewName% - do pieczenia Wyświetl szablon
  • bin/cake bake all %className% - do upieczenia kontrolera, modelu + encji, widoku dla programisty.

Uwaga : nie będziesz mógł bake model jeśli nie masz tabel w bazie danych

Uwaga : Jeśli bake all komponenty, otrzymasz Controllers ze wstępnie zdefiniowanymi działaniami CRUD .

Zbuduj najpierw „Witaj świecie!” aplikacja z CakePHP 3.x (migracje tabel baz danych. Część 2)

Możesz łatwo create tabele dla swojej bazy danych lub drop je, jeśli chcesz. Jeśli chcesz to zrobić, powinieneś nauczyć się pisać Migrations dla żądanej bazy danych.

Pliki migracji muszą znajdować się w folderze config/Migrations . Nazwy plików mogą być w kolejnych formatach:

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

}

Jeśli chcesz uruchomić migrację, musisz uruchomić następną komendę:

bin/cake migrations migrate do tabeli (-s).

Jeśli chcesz wycofać:

bin/cake migrations rollback - cofnie ostatnią migrację, jeśli istnieje funkcja drop()

bin/cake migrations (-t|--target) all - cofną wszystkie migracje, w których istnieje funkcja drop()

Zbuduj najpierw „Witaj świecie!” aplikacja z CakePHP 3.x (Kontrolery, reakcja, widok. Część 3)

Chcesz stworzyć kontroler? Istnieją dwa sposoby jego utworzenia:

  • Ręcznie (będziesz zmuszony ręcznie utworzyć plik kontrolera w src/Controller )
  • Pieczone (Uruchamianie bin/cake bake controller %controllerName% z CLI)

Jeśli chcesz go utworzyć ręcznie, przejdź do folderu src/Controller i utwórz plik o następującym wzorze:

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

W tym kontrolerze powinieneś zdefiniować przestrzeń namspace , która będzie używana:

<?php
    namespace App\Controller;

Następnie powinieneś nazwać go jako nazwę pliku, np. AdminiController:

use App\Controller\AppController;

class AdminController extends AppController{}

W tej klasie powinieneś stworzyć swoją pierwszą metodę, np. login :

public function login(){}

Jeśli wpiszesz w przeglądarce: http://{{project-name}}/admin/login , wygeneruje błąd braku szablonu. Jak rozwiązać ten problem?

Musisz utworzyć w pliku src/Template/Admin/ login.ctp .

Uwaga : * .ctp symbol wieloznaczny - to plik szablonu ciasta, który służy do przekazywania / renderowania danych ustawianych przez kontroler.

W tym pliku wpisz „Hello World!” gdzie chcesz, odśwież stronę z błędem szablonu, a otrzymasz swój World , który Cię pozdrawia!

Uwaga : Domyślnie src/Template/Layout/default.ctp jest renderowany jako layout, jeśli go nie zdefiniowałeś

Instalowanie CakePHP 3.4 na CentOS 7 z włączonym PHP 7 i SELinux

Tak zrobiłem, aby zainstalować CakePHP na świeżo zainstalowanym minimalnym CentOS 7

  • Zainstalowałem CentOS-7-x86_64-Minimal-1611.iso w VirtualBox, dwa interfejsy sieciowe: pierwszy NAT, drugi tylko host
  • ustaw ONBOOT = tak w / etc / sysconfig / network-scripts / ifcfg-enp0s3
  • restart
  • mniam aktualizacja
  • mniam zainstaluj net-tools (aby pobrać ifconfig i netstat)
  • mniam zainstaluj wget
  • mniam zainstaluj mniam-narzędzia
  • 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 - włącz remi-php71
  • mniam zainstaluj php
  • systemctl włącz httpd
  • systemctl start httpd
  • firewall-cmd --permanent --zone = public --add-service = http
  • firewall-cmd --permanent --zone = public --add-service = https
  • firewall-cmd --reload
  • mniam zainstaluj httpd mariadb-server mariadb php phpmyadmin
  • systemctl start mariadb
  • systemctl enable mariadb
  • zrestartuj systemctl httpd
  • mniam zainstaluj 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 /
  • Utwórz bazę danych:
# 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
  • Utwórz plik /etc/httpd/conf.d/my_app.conf z zawartością:
<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

  • dotknij / .autorelabel; restart

  • Na moim hoście edytuję / etc / hosts i 192.168.56.101 cakephp.myapp.net wiersz (192.168.56.101 to adres IP hosta mojej maszyny wirtualnej) 192.168.56.101 cakephp.myapp.net



Modified text is an extract of the original Stack Overflow Documentation
Licencjonowany na podstawie CC BY-SA 3.0
Nie związany z Stack Overflow