수색…


비고

이 섹션에서는 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를 설치하는 가장 쉬운 방법을 따르십시오.

벨로우즈 단계를 따르십시오,

  1. Git 저장소 로 이동
  2. 쉬운 설치를 위해 cakeDC / oven을 다운로드하십시오.
  3. LOCALHOST 내의 zip 파일의 압축을 풉니 다.
  4. 해당 폴더에 777 권한을 부여하십시오.
  5. 파일을 실행하십시오. oven.php (폴더 내에서 사용 가능)
  6. 페이지가 열리 며 많은 옵션이 있습니다. 원하는대로 옵션을 선택하십시오.
  7. 이미지를 클릭하고 뒤로 앉으십시오. 프로젝트가 몇 분 안에 설치됩니다.

실행 :

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 , passworddatabase 를 변경해야 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 modelbake 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



Modified text is an extract of the original Stack Overflow Documentation
아래 라이선스 CC BY-SA 3.0
와 제휴하지 않음 Stack Overflow