cakephp-3.0 튜토리얼
cakephp-3.0 시작하기
수색…
비고
이 섹션에서는 cakephp-3.0이 무엇인지, 왜 개발자가 그것을 사용하고 싶어하는지에 대한 개요를 제공합니다.
또한 cakephp-3.0 내의 큰 주제를 언급하고 관련 주제에 링크해야합니다. cakephp-3.0에 대한 문서가 새롭기 때문에 관련 주제의 초기 버전을 만들어야 할 수도 있습니다.
Cakephp 3.X 설치
요구 사항 :
- PHP 5.6.0 이상 mbstring PHP 확장 (WAMP / XAMPP에서 기본 동작, 그렇지 않으면 활성화)
- intl PHP 확장 (WAMP / XAMPP에서 사용 가능합니다.
php.ini에서) - CakePHP는 nginx와 같은 다양한 웹 서버에서 실행됩니다.
- LightHTTPD 또는 Microsoft IIS.
시작하기 전에 PHP 버전이 최신 버전인지 확인해야합니다.
php -v
Composer를 사용하여 Cakephp 3 Framework,
Composer는 공식적으로 설치 방법으로 지원되므로 Composer (Windows / Linux / Mac) 에서 작곡가를 다운로드하십시오.
이것을 실행하여 cakephp를 설치하고,
php composer.phar create-project --prefer-dist cakephp/app my_app_name
Composer가 응용 프로그램 뼈대와 핵심 CakePHP 라이브러리를 다운로드하고 나면 Composer를 통해 작동하는 CakePHP 응용 프로그램을 설치해야합니다. composer.json 및 composer.lock 파일은 나머지 소스 코드와 함께 보관하십시오.
또는 cakephp를 설치하는 가장 쉬운 방법을 따르십시오.
벨로우즈 단계를 따르십시오,
- 이 Git 저장소 로 이동
- 쉬운 설치를 위해 cakeDC / oven을 다운로드하십시오.
- LOCALHOST 내의 zip 파일의 압축을 풉니 다.
- 해당 폴더에 777 권한을 부여하십시오.
- 파일을 실행하십시오. oven.php (폴더 내에서 사용 가능)
- 페이지가 열리 며 많은 옵션이 있습니다. 원하는대로 옵션을 선택하십시오.
- 이미지를 클릭하고 뒤로 앉으십시오. 프로젝트가 몇 분 안에 설치됩니다.
실행 :
bin/cake server
기본적으로 제공되는 인수없이 http : // localhost : 8765 / 에서 응용 프로그램을 제공합니다.
브라우저 ( http://example.com/ 또는 http : // localhost : 8765 /)에서 실행하십시오 . 이 시점에서 CakePHP의 기본 홈과 현재 데이터베이스 연결의 상태를 알려주는 메시지가 표시되며 첫 번째 애플리케이션 준비가 완료됩니다.
설치와 설정에 대한 더 자세한 정보는 Cakephp 3.X 설치
프로젝트 설정
처음에는 데이터베이스 작업을 위해 mysql , phpMyAdmin , HeidiSQL 또는 다른 도구를 사용하여 데이터베이스를 만들고 사용자가 새 데이터베이스를 만들도록해야합니다.
이 절차가 끝나면 프로젝트에 대한 데이터베이스 액세스 권한을 제공해야합니다.
/path/to/your/project/config/app.php 파일을 /path/to/your/project/config/app.php 다음 Datasources default 를 찾으십시오. 이 배열에서는 localhost (on demand), user , password 및 database 를 변경해야 database .
o 귀하의 브라우저 및 새로 고침 페이지로 이동하십시오. DB 문제가 사라지고 왼쪽에 Green Tick 표시됩니다.
끝난! 첫 번째 프로젝트가 설정되었습니다!
먼저 'Hello World!'를 구축하십시오. CakePHP 3.x로 응용 프로그램 (Introduction. Part 1)
CakePHP 3.x는 controllers , models , views 및 기타 프레임 워크 정의 객체를 bake 하는 기능을 가지고 있습니다.
참고 :
Laravel프레임 워크에 대한 경험이 있다면artisan구성 요소는bake와 유사합니다.
bake 응용 프로그램은 bin 폴더에 있습니다. 다음은 사용 가능한 명령 중 일부입니다.
-
bin/cake bake shell %shellName%- ShellClass 굽기 -
bin/cake bake controller %controllerName%- 컨트롤러 클래스를 굽기 위해 -
bin/cake bake model %modelName%- 모델 + 엔티티 클래스 굽기 -
bin/cake bake view %viewName%-보기 템플릿을 굽기 위해 -
bin/cake bake all %className%- 컨트롤러, Model + Entity, 개발자보기.
참고 : 데이터베이스에 테이블이 없으면
bake model을bake model할 수 없습니다.
참고 :
bake all구성 요소를bake all다면 미리 정의 된CRUD동작을 통해Controllers를 얻을 수 있습니다.
먼저 'Hello World!'를 구축하십시오. CakePHP 3.x 응용 프로그램 (데이터베이스 테이블 마이그레이션, 2 부)
데이터베이스 테이블을 쉽게 create 거나 원하는 경우 테이블을 drop 수 있습니다. 원하는 경우 원하는 데이터베이스에 대한 Migrations 을 작성하는 방법을 배워야합니다.
마이그레이션 파일은 config/Migrations 폴더에 있어야합니다. 파일 이름은 다음 형식 일 수 있습니다.
-
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");
}
}
마이그레이션을 실행하려면 다음 명령을 실행해야합니다.
bin/cake migrations migrate 표 (-s)를 작성하기 위해 bin/cake migrations migrate 됩니다.
롤백하려는 경우 :
bin/cake migrations rollback - drop() 함수가있는 마지막 마이그레이션을 되돌 drop()
bin/cake migrations (-t|--target) all - drop() 함수가있는 모든 마이그레이션을 되돌 drop()
먼저 'Hello World!'를 구축하십시오. CakePHP 3.x (컨트롤러, 응답,보기, 파트 3)
컨트롤러를 만들고 싶습니까? 그것을 창조하는 2 가지의 방법이있다 :
- 수동으로 (
src/Controller에 컨트롤러 파일을 수동으로 생성해야합니다) - Baked (CLI에서
bin/cake bake controller %controllerName%명령 실행)
수동으로 생성하려면 src/Controller 폴더로 이동하여 다음 패턴을 따르는 파일을 만듭니다.
([AZ]{1}[az]{1,})Controller.php
해당 컨트롤러에서 namspace 를 정의해야하며 다음과 같이 사용됩니다.
<?php
namespace App\Controller;
그런 다음 이름을 filename으로 지정해야합니다 (예 : AdminiController :
use App\Controller\AppController;
class AdminController extends AppController{}
이 수업에서는 첫 번째 방법 인 ex.를 작성해야합니다. login :
public function login(){}
브라우저에 http://{{project-name}}/admin/login 을 입력하면 템플릿 누락 오류가 발생합니다. 이 문제를 해결하는 방법?
src/Template/Admin/ login.ctp 파일 아래에 만들어야합니다.
참고 : * .ctp 와일드 카드 - 컨트롤러를 통해 설정 한 데이터를 전달 / 렌더링하는 데 사용하는 Cake Template 파일입니다.
이 파일에 'Hello World!'라고 입력하면됩니다. 당신이 원하는 경우, 템플릿 오류 페이지를 새로 고침하고 당신이 당신 얻을 것이다 World , 즉 인사!
참고 : 기본적으로
src/Template/Layout/default.ctp는 레이아웃으로 렌더링됩니다 (정의하지 않은 경우).
CentOS 7에서 PHP 7 및 SELinux가 활성화 된 CakePHP 3.4 설치
이것이 내가 설치 한 새로운 CentOS 7에 CakePHP를 설치 한 이유입니다.
- VirtualBox에 2 개의 네트워크 인터페이스 인 CentOS-7-x86_64-Minimal-1611.iso 설치 : 첫 번째 NAT, 두 번째 호스트 전용
- / etc / sysconfig / network-scripts / ifcfg-enp0s3에 ONBOOT = yes를 설정하십시오.
- 재부팅
- 냠 업데이트
- yum install net-tools (ifconfig 및 netstat 얻기)
- 냠 설치 wget
- yum install 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 - 사용 가능한 remi-php71
- 냠 PHP를 설치
- systemctl enable httpd
- systemctl start httpd
- firewall-cmd --permanent --zone = public --add-service = http
- firewall-cmd --permanent --zone = 공용 --add-service = https
- firewall-cmd --reload
- yum은 httpd mariadb-server mariadb php phpmyadmin을 설치합니다.
- systemctl start mariadb
- systemctl이 mariadb를 활성화합니다.
- systemctl restart httpd
- 냠 설치 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 /
- 데이터베이스 생성 :
# 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
- 내용이있는 /etc/httpd/conf.d/my_app.conf 파일을 만듭니다.
<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; 재부팅
내 호스트에서 / etc / hosts를 편집하고 라인을 입력하십시오 (192.168.56.101은 내 VM의 호스트 전용 IP 주소입니다)
192.168.56.101 cakephp.myapp.net
서핑을 통해 http://cakephp.myapp.net/
할일 : 데이터베이스 연결 파일을 편집하십시오.