zoukankan      html  css  js  c++  java
  • Mac搭建PHP Phalcon框架


    个人博客: alex-my.xyz

    1 说明

    PHP与nginx安装请参考“Mac搭建lnmp环境” 
    MySQL请先安装 
    部分路径说明:

    # 安装php相关库的路径
    ~/Lib/php/
    # 新项目路径
    ~/WWW/
    # nginx配置位置
    /usr/local/etc/nginx
    # php配置位置
    /usr/local/etc/php/5.6
    

    2 安装phalcon

    进入目录~/Lib/php,并执行以下命令

    git clone git://github.com/phalcon/cphalcon.git
    cd cphalcon/build
    sudo ./install
    

    安装之后在/usr/local/etc/php/5.6/php.ini 中添加:

    extension=phalcon.so
    

    重启php-fpm

    killall php-fpm
    php-fpm -D
    

    如果已经有搭建好的php服务器,可以运行以下代码查确定是否安装成功,如果没有,则无需纠结该步骤。

    // test.php
    <?php
        $info = get_loaded_extensions();
        foreach ($info as $info0)
        {
            echo $info0.'<br/>';
        }
    ?>
    

    在展示的页面中出现phalcon则表示安装成功。

    3 安装phalcon develop tool

    进入目录~/Lib/php,并执行以下命令

    git clone git://github.com/phalcon/phalcon-devtools.git
    cd phalcon-devtools/
    sudo /bin/sh ./phalcon.sh
    

    此时查看~/.bash_profile中会发现已添加了以下内容:

    export PTOOLSPATH=/Users/alex/Lib/php/phalcon-devtools/
    export PATH=$PATH:/Users/alex/Lib/php/phalcon-devtools
    

    运行source ~/.bash_profile使其生效。

    输入phalcon –version查看信息:

    ➜  /Users/alex phalcon --version
    
    Phalcon DevTools (3.0.3)
    
    Environment::
      OS: Darwin alex.local 15.4.0 Darwin Kernel Version 15.4.0: Fri Feb 26 22:08:05 PST 2016; root:xnu-3248.40.184~3/RELEASE_X86_64 x86_64
      PHP Version: 5.6.24
      PHP SAPI: cli
      PHP Bin: /usr/local/Cellar/php56/5.6.24/bin/php
      PHP Extension Dir: /usr/local/Cellar/php56/5.6.24/lib/php/extensions/debug-non-zts-20131226
      PHP Bin Dir: /usr/local/Cellar/php56/5.6.24/bin
      Loaded PHP config: /usr/local/etc/php/5.6/php.ini
    Versions::
      Phalcon DevTools Version: 3.0.3
      Phalcon Version: 3.0.2
      AdminLTE Version: 2.3.6
    
    [Fri Dec 23 17:08:22 2016]  Script:  '/Users/alex/Lib/php/phalcon-devtools/phalcon.php'
    /Users/alex/Lib/php/cphalcon/build/php5/64bits/phalcon.zep.c(23654) :  Freeing 0x1106784F0 (32 bytes), script=/Users/alex/Lib/php/phalcon-devtools/phalcon.php
    === Total 1 memory leaks detected ===
    

    如果没有效果,包括后面的步骤phalcon命令不存在等问题,可以在终端执行source ~/.bash_profile,重启终端解决。

    4 创建新项目manage

    进入目录~/WWW/中,输入以下命令创建一个名为manage的新项目。

    phalcon create-project manage
    

    终端输出:

    Phalcon DevTools (3.0.3)
    
        Success: Controller "index" was successfully created.  
    /Users/alex/WWW/manage/app/controllers/IndexController.php
    
        Success: Project "manage" was successfully created.
    
    [Fri Dec 23 14:59:30 2016]  Script:  '/Users/alex/Lib/php/phalcon-devtools/phalcon.php'
    /Users/alex/Lib/php/cphalcon/build/php5/64bits/phalcon.zep.c(23654) :  Freeing 0x10757A680 (32 bytes), script=/Users/alex/Lib/php/phalcon-devtools/phalcon.php
    === Total 1 memory leaks detected ===
    

    5 创建manage.conf

    在nginx下添加配置文件,用以运行manage。 
    进入/usr/local/etc/nginx/sites-enabled目录,创建manage.conf文件,内容:

    server {
        listen      80;
        server_name manage.com;
        # 注意指向的是manage/public
        set         $root_path '/Users/alex/WWW/manage/public/';
        root        $root_path;
    
        index index.php index.html index.htm;
    
        try_files $uri $uri/ @rewrite;
    
        location @rewrite {
            rewrite ^/(.*)$ /index.php?_url=/$1;
        }
    
        location ~ .php {
            # try_files    $uri =404;
    
            fastcgi_index  /index.php;
            fastcgi_pass   127.0.0.1:9000;
    
            include fastcgi_params;
            fastcgi_split_path_info       ^(.+.php)(/.+)$;
            fastcgi_param PATH_INFO       $fastcgi_path_info;
            fastcgi_param PATH_TRANSLATED $document_root$fastcgi_path_info;
            fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        }
    
        location ~* ^/(css|img|js|flv|swf|download)/(.+)$ {
            root $root_path;
        }
    
        location ~ /.ht {
            deny all;
        }
    }
    

    在/etc/hosts中添加manage.com记录

    sudo vim /etc/hosts
    # 添加
    127.0.0.1   manage.com
    

    重载nginx

    nginx -s reload
    

    在浏览器中输入 manage.com

    Congratulations!
    You're now flying with Phalcon. Great things are about to happen!
    
    This page is located at views/index/index.volt
    

    6 phpstorm配置phalcon develop tool

    用phpstorm打开manage项目。 
    打开app/controllers/ControllerBase.php,发现以下代码显示红色错误(Mvc):

    use PhalconMvcController;
    

    现在将Phalcon Libray添加进来,消除错误,添加语法提示。

    External Libraries 右键选择 configure php include paths
    interpreter 记得选择 /usr/local/bin/php(没有就自己建一个), /usr/bin/php是系统自带的php5.5(或者重建软链接)
    在include path 点击 + 号
    选择 /Users/alex/Lib/php/phalcon-devtools/ide/stubs/Phalcon
    

    现在红色错误消除了。也增加了语法提示。

    7 phpstorm配置命令行工具

    phpstorm – Prefreners – Tools – Command Line Tool Support 选择 +号 
    内容按照以下填写:

    Choose tool: Custom tool
    Visibility: global
    
    Tool path: /Users/alex/Lib/php/phalcon-devtools/ide/phpstorm/phalcon.sh
    Alias: phalcon-tool
    Description: Phalcon Developer Tools
    

    8 phpstorm测试命令行工具

    phpstorm – tool – run command 
    在ide底部出现输入框和显示框.Command Line Tools Console,输入以下命令

    phalcon-tool create-controller --name test
    

    命令中的phalcon-tool就是第7步 Alias: phalcon-tool 
    显示框显示:

    > /Users/alex/Lib/php/phalcon-devtools/ide/phpstorm/phalcon.sh create-controller --name test
    
    Phalcon DevTools (3.0.3)
    
    [Fri Dec 23 16:14:13 2016]  Script:  '/Users/alex/Lib/php/phalcon-devtools/phalcon.php'
    /Users/alex/Lib/php/cphalcon/build/php5/64bits/phalcon.zep.c(23654) :  Freeing 0x10FE2ED60 (32 bytes), script=/Users/alex/Lib/php/phalcon-devtools/phalcon.php
    === Total 1 memory leaks detected ===
    
      Success: Controller "test" was successfully created.  
    
    /Users/alex/WWW/manage/app/controllers/TestController.php
    
    Process finished with exit code 0 at 16:14:13.
    Execution time: 472 ms.
    

    在app/controllers中出现一个新文件TestController.php

    9 修改数据库配置

    在本地创建数据库manage

    create database manage;
    

    修改 app/config/config.php中的database

    'database' => [
        'adapter'     => 'Mysql',
        'host'        => 'localhost',
        'username'    => 'root',
        'password'    => '123456',
        'dbname'      => 'manage',
        'charset'     => 'utf8',
    ],
    

    10 数据库中的表生成模型

    在数据库manage创建表user;

    DROP TABLE IF EXISTS `user`;
    
    CREATE TABLE `user` (
      `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
      `username` varchar(200) NOT NULL DEFAULT '' COMMENT '登录名',
      `password` varchar(32) NOT NULL COMMENT '登录密码',
      `salt` char(6) NOT NULL COMMENT '校验码',
      PRIMARY KEY (`id`),
      UNIQUE KEY `m_username` (`username`)
    ) ENGINE=MyISAM DEFAULT CHARSET=utf8 ROW_FORMAT=COMPACT COMMENT='成员表';
    

    在命令行输入:

    phalcon-tool create-model --name user
    

    显示框显示:

    > /Users/alex/Lib/php/phalcon-devtools/ide/phpstorm/phalcon.sh create-model --name user
    
    Phalcon DevTools (3.0.3)
    
    [Fri Dec 23 16:21:46 2016]  Script:  '/Users/alex/Lib/php/phalcon-devtools/phalcon.php'
    
    /Users/alex/Lib/php/cphalcon/build/php5/64bits/phalcon.zep.c(48476) :  Freeing 0x1051B07B8 (32 bytes), script=/Users/alex/Lib/php/phalcon-devtools/phalcon.php
      Success: Model "User" was successfully created.  
    [Fri Dec 23 16:21:46 2016]  Script:  '/Users/alex/Lib/php/phalcon-devtools/phalcon.php'
    
    /Users/alex/Lib/php/cphalcon/build/php5/64bits/phalcon.zep.c(23654) :  Freeing 0x10480AD60 (32 bytes), script=/Users/alex/Lib/php/phalcon-devtools/phalcon.php
    === Total 2 memory leaks detected ===
    

    在app/models中,会自动出现一个User.php。如果没出现,需要稍等一小段时间。

    11 参考

  • 相关阅读:
    fiddler使用
    Laravel数据库操作
    mysql 小知识点备忘(一)
    移动端和服务器端通信
    js函数和代码片段
    tomcat9目录结构解析
    数据库三范式的理解
    win10修改hosts文件
    Java十六进制字符串与二进制数组互转、&0xff的作用
    15、SpringBoot实现Excel的导入导出
  • 原文地址:https://www.cnblogs.com/wanghaitao/p/9440324.html
Copyright © 2011-2022 走看看