Mac搭建PHP Phalcon框架

简介: 说明安装phalcon安装phalcon develop tool创建新项目manage创建manageconfphpstorm配置phalcon develop toolphpstorm配置命令行工具phpstorm测试命令行工具修改数据库配置数据库中的表生成模型参考个人博客: alex-my.xyz1 说明php与nginx


个人博客: 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 Phalcon\Mvc\Controller;

现在将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 参考

相关文章
|
SQL 安全 PHP
PHP 自发布以来一直在 Web 开发领域占据重要地位,PHP 8 更是带来了属性、刚性类型等新特性。
【10月更文挑战第1天】PHP 自问世以来,凭借其易用性和灵活性,在 Web 开发领域迅速崛起。从简单的网页脚本语言逐步演进为支持面向对象编程的现代语言,尤其自 PHP 5.3 引入命名空间后,代码组织和维护变得更加高效。PHP 7 的性能优化和 PHP 8 的新特性(如属性和刚性类型)进一步巩固了其地位。框架如 Laravel、Symfony、Yii2 和 CodeIgniter 等简化了开发流程,提高了效率和安全性。
315 2
|
SQL 缓存 PHP
PHP框架详解 - symfony框架
Symfony框架凭借其灵活性、高性能和强大的社区支持,成为PHP开发领域的重要工具。无论是初学者还是资深开发者,都可以通过Symfony快速构建高质量的Web应用程序。通过深入理解Symfony的核心组件和最佳实践,开发者可以充分发挥其优势,提升开发效率和代码质量。
464 24
|
SQL 安全 PHP
PHP开发中防止SQL注入的方法,包括使用参数化查询、对用户输入进行过滤和验证、使用安全的框架和库等,旨在帮助开发者有效应对SQL注入这一常见安全威胁,保障应用安全
本文深入探讨了PHP开发中防止SQL注入的方法,包括使用参数化查询、对用户输入进行过滤和验证、使用安全的框架和库等,旨在帮助开发者有效应对SQL注入这一常见安全威胁,保障应用安全。
1062 4
|
API PHP 数据库
PHP中哪个框架最适合做API?
在数字化时代,API作为软件应用间通信的桥梁至关重要。本文探讨了PHP中适合API开发的主流框架,包括Laravel、Symfony、Lumen、Slim、Yii和Phalcon,分析了它们的特点和优势,帮助开发者选择合适的框架,提高开发效率、保证接口稳定性和安全性。
810 3
|
SQL 安全 PHP
探索PHP的现代演进:从Web开发到框架创新
PHP是一种流行的服务器端脚本语言,自诞生以来在Web开发领域占据重要地位。从简单的网页脚本到支持面向对象编程的现代语言,PHP经历了多次重大更新。本文探讨PHP的现代演进历程,重点介绍其在Web开发中的应用及框架创新,如Laravel、Symfony等。这些框架不仅简化了开发流程,还提高了开发效率和安全性。
240 3
|
SQL 安全 PHP
探索PHP的现代演进:从Web开发到框架创新
PHP 自发布以来一直在 Web 开发领域占据重要地位,历经多次重大更新,从简单的脚本语言进化为支持面向对象编程的现代语言。本文探讨 PHP 的演进历程,重点介绍其在 Web 开发中的应用及框架创新。自 PHP 5.3 引入命名空间后,PHP 迈向了面向对象编程时代;PHP 7 通过优化内核大幅提升性能;PHP 8 更是带来了属性、刚性类型等新特性。
247 3
|
Cloud Native 关系型数据库 MySQL
PHP的演变之路:从初生之犊到成熟框架
【8月更文挑战第20天】本文将带你穿梭时空,探索PHP这一互联网基石语言的发展历程。我们将从PHP的起源谈起,见证它如何应对时代的挑战,逐步成长为支持现代Web开发的强力工具。文章不仅追溯PHP的历史轨迹,还将深入探讨其对开发者社区的影响以及在现代技术环境中的定位和未来趋势。
368 13
|
设计模式 SQL 安全
PHP中的设计模式:单例模式的深入探索与实践在PHP的编程实践中,设计模式是解决常见软件设计问题的最佳实践。单例模式作为设计模式中的一种,确保一个类只有一个实例,并提供全局访问点,广泛应用于配置管理、日志记录和测试框架等场景。本文将深入探讨单例模式的原理、实现方式及其在PHP中的应用,帮助开发者更好地理解和运用这一设计模式。
在PHP开发中,单例模式通过确保类仅有一个实例并提供一个全局访问点,有效管理和访问共享资源。本文详细介绍了单例模式的概念、PHP实现方式及应用场景,并通过具体代码示例展示如何在PHP中实现单例模式以及如何在实际项目中正确使用它来优化代码结构和性能。
395 2
|
消息中间件 NoSQL Go
PHP转Go系列 | ThinkPHP与Gin框架之Redis延时消息队列技术实践
【9月更文挑战第7天】在从 PHP 的 ThinkPHP 框架迁移到 Go 的 Gin 框架时,涉及 Redis 延时消息队列的技术实践主要包括:理解延时消息队列概念,其能在特定时间处理消息,适用于定时任务等场景;在 ThinkPHP 中使用 Redis 实现延时队列;在 Gin 中结合 Go 的 Redis 客户端库实现类似功能;Go 具有更高性能和简洁性,适合处理大量消息。迁移过程中需考虑业务需求及系统稳定性。
568 1
|
安全 前端开发 PHP
构建与验证表单:传统PHP与Laravel框架的比较分析——探索Web开发中表单处理的优化策略和最佳实践
【8月更文挑战第31天】在 Web 开发中,表单构建与数据验证至关重要。传统 PHP 方法需手动处理 HTML 表单和数据验证,而 Laravel 框架则提供了一种更现代、高效的解决方案。本文通过对比传统 PHP 和 Laravel 的方法,探讨表单构建与验证的最佳实践。Laravel 通过简洁的语法糖、内置的数据过滤和验证机制,显著提升了代码的安全性和可维护性,适用于大型项目或需要快速开发的场景。然而,在追求灵活性的小型项目中,直接使用 PHP 仍是不错的选择。了解两者的优劣,有助于开发者根据项目需求做出最佳决策。
280 1