PHP+phalcon으로 웹 애플리케이션 만들기

8427 단어 MySQLPHP7Phalcon
업무로, PHP의 신규 안건이 있을 것 같기 때문에, 간단하게 구현할 수 있는 WEB Framework를 찾고 있으면, phalcon를 발견했습니다. phalcon을 사용하여 crud를 구현할 때까지 게시합니다.

【환경】


카테고리



os
windows 10 home 64bit

php
PHP 7.3.5( ZTS MSVC15 (Visual C++ 2017) x64 )


1. phalcon



PHP 웹 프레임워크phalcon를 사용해 봅니다.

1-(1). 다운로드



1-(2). 설치



다운로드한 파일의 압축을 풀고 "php_phalcon.dll"을 "c:\php\ext"에 복사합니다.

1-(3). php.ini 편집



php.ini를 열고 확장에 다음을 추가합니다.
extension=php_phalcon.dll

2. phalcon-devtools



Phalcon의 개발 도구입니다. Phalcon에서 개발하는 경우 이 개발 도구를 사용합니다.

2-(1). 다운로드



phalcon-devtools

2-(2). 패스를 통과



다운로드한 phalcon-devtools의 디렉토리를 환경 변수의 Path에 추가합니다.
C:\data\php\phalcon\phalcon-devtools

2-(3). 프로젝트를 만듭니다.



phalcon 명령을 사용하여 프로젝트를 만듭니다.
phalcon project --name testprj1 --enable-webtools
cd testprj1

2-(4). 움직여 보자.



내장 웹 서버에서 프로젝트를 시작하고 브라우저에서 확인하십시오.
php -S localhost:8000 -t public .htrouter.php

또는 다음 명령으로도 시작할 수 있습니다.
phalcon serve

2-(5). 정지



Ctrl-C

3. INVO



PHP WebFramework "Phalcon"프로젝트 템플릿입니다. dev-tools의 project 명령으로 프로젝트를 작성해도 좋지만, 이것은 인증 등의 기능이 미리 장비되어 있으므로, 이 템플릿을 사용하는 것이 보다 효율적입니다. 여기도 설치합니다.

3-(1). 설치



3-(1)-1.다운로드



3-(1)-2. 설치



다운로드한 파일을 적당한 폴더에 압축을 풀기만 하면 됩니다.

3-(1)-3. DB 설정



3-(1)-3-1. 데이터베이스 만들기



프로젝트가 사용하는 데이터베이스를 작성합니다. 다음은 MySQL을 사용하는 경우.
MySQL에 연결하고 데이터베이스를 만듭니다. 데이터베이스 이름은 "invodb"입니다.
create database invodb

3-(1)-3-2. 프로젝트를 데이터베이스에 연결할 수 있도록 한다.



app\config\config.ini를 열고 database의 연결 정보를 편집합니다.
[database]
adapter  = Mysql
host     = localhost
username = testuser
password = ************************
dbname   = invodb
charset  = utf8

3-(1)-3-3. INVO의 테이블이나 데이터를 등록한다.



명령 프롬프트에서 다음 명령을 실행하여 테이블과 데이터를 등록합니다.
mysql -u testuser -p ***************** -D invodb < C:\data\php\phalcon\invo-master\schemas\invo.sql

3-(1)-3-4. 동작 확인


  • PHP 내장 서버를 시작하고 INVO을 실행해보십시오.
  • php -S localhost:8000 -t public .htrouter.php
    



    4. INVO에 CRUD를 추가한다.



    phalcon devtools에는 Ruby on Rails와 elixir의 Phoenix와 마찬가지로 crud를 자동으로 생성하는 명령이 장착되어 있습니다. INVO에 CRUD를 추가해 보겠습니다.

    4-1. 데이터베이스에 테이블을 추가합니다.


    CREATE TABLE `department` (
      `deptcode` varchar(6) NOT NULL,
      `deptname` varchar(255) NOT NULL,
      PRIMARY KEY (`deptcode`)
    )
    

    4-2. "scaffold"를 실행한다.



    INVO의 루트 폴더로 이동하여 다음 명령을 실행합니다.
    phalcon scaffold department --template-engine=volt
    

    4-3. 프로젝트 폴더/파일 구성



    다음과 같은 폴더/파일이 추가됩니다.
    └─app
    ・・・・・
        ├─controllers
        │      DepartmentController.php
    ・・・・・
        ├─models
        │      Department.php
    ・・・・・
        └─views
            ├─department
            │      edit.volt
            │      index.volt
            │      new.volt
            │      search.volt
    ・・・・・
            └─layouts
                    department.volt
    ・・・・・
    

    5. 추가한 CRUD를 INVO에서 호출합니다.



    수정할 파일이지만 다음 파일입니다.

    5-(1). app\library\Elements.php



    navibar에 "department"의 crud를 추가합니다.
    class Elements extends Component
    {
        private $_headerMenu = [
            'navbar-left' => [
    // <-- 追加
                'department' => [
                    'caption' => 'Department',
                    'action' => 'index'
                ],
    // --> ここまで
    

    5-(2). app\plugins\SecurityPlugin.php



    보안 레벨을 설정합니다.
    ・・・
    class SecurityPlugin extends Plugin
    {
    //・・・
    public function getAcl()
    {
    // このif文はコメントしないと動かない。対応する}もコメントしてください。
    // if (!isset($this->persistent->acl)) {
    
    //・・・
    $privateResources = [
    // <-- 追加
        'department'    => ['index', 'search', 'new', 'edit', 'save', 'create', 'delete'],
    // --> ここまで
    //・・・
    

    5-(3). 확인



    WEB 서버를 시작하고 브라우저에서 확인해 봅시다.
    phalcon serve
    





    HTML은 일본어화 등의 미조정이 필요합니다만, 테이블만 등록하면 CRUD를 간단하게 구현할 수 있습니다.

    PHP로 개발하면 Phalcon은 꽤 좋은 느낌입니다.

    참고 사이트

    웹 앱 개발에 최적! 2019년 추천 PHP 프레임워크 10선
    Phalcon Devtools를 사용한 MVC 프로젝트 작성부터 HelloWorld까지

    좋은 웹페이지 즐겨찾기