cakephp-3.0 Samouczek
Rozpoczęcie pracy z cakephp-3.0
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,
- przejdź do tego repozytorium Git
- Pobierz CakeDC / piekarnik dla łatwej instalacji
- Wyodrębnij plik zip w LOCALHOST
- Udziel 777 uprawnień do tego folderu
- Uruchom plik piekarnik.php (dostępny w folderze)
- Otworzy się strona z wieloma opcjami, wybierz opcję zgodnie z własnymi preferencjami
- 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, komponentartisanjest podobny dobake.
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 modeljeśli nie masz tabel w bazie danych
Uwaga : Jeśli
bake allkomponenty, otrzymaszControllersze wstępnie zdefiniowanymi działaniamiCRUD.
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.ctpjest 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.netwiersz (192.168.56.101 to adres IP hosta mojej maszyny wirtualnej)192.168.56.101 cakephp.myapp.net
Surfuj do http://cakephp.myapp.net/
Do zrobienia: Edytuj plik połączenia z bazą danych.