phalcon-入门篇2(HelloWord与PhalconTools)
#phalcon-入门篇2(HelloWord与PhalconTools)#
本教程基于phalcon2.0.9版本
##前言## 先在这里感谢各位phalcon技术爱好者,我们提供这样一个优秀的交流平台
最近刚好趁着春节放假前几天摸鱼的时间为大家带来今天的phalcon教程,今天教程的内容只要是把phalcon运行起来以及在开发过程中的phalconTools工具的,在之后涉及到有代码教程都会存放在**<<教程代码库>>**项目中大家可以下载查阅,下面我们开始今天的phalcon之路希望大家喜欢.
注:笔者水平有限,说的不正确的地方希望大家多多指正,一同交流技术
附上:
喵了个咪的博客:http://w-blog.cn
教程代码库:http://git.oschina.net/wenzhenxi/Phalcon-tutorial
phalcon官网地址:https://phalconphp.com
phalcon中文社区:http://www.iphalcon.cn/
##1. Hello,Word!##
我们在学习很多语言框架刚开始接触的基本是都是**Hello,Word!**那么让我们来看看怎么在phalcon上输出Hello,Word!
我们先创建如下的目录结构在网站/目录 比如index.php的物理地址是 -> /phalcon/public/index.php
注意:phalcon的目录结构是松耦合的可以按照自己习惯使用对你来说最舒服的文件结构。
###1.1 入口文件index###
入口文件的主要作用初始化各项需要加载的实例,注册控制器,数据层,view层并且处理请求获得返回结果
我们在index.php加入如下代码:
use PhalconLoader;
use PhalconMvcView;
use PhalconMvcApplication;
use PhalconDIFactoryDefault;
try {
// 创建自动加载(AutoLoaders)实例
$loader = new Loader();
// 通过自动加载加载控制器(Controllers)
$loader->registerDirs(array(
// 控制器所在目录
'../app/controllers/',
))->register();
// 创建一个DI实例
$di = new FactoryDefault();
// 实例化View 赋值给DI的view
$di->set('view', function () {
$view = new View();
$view->setViewsDir('../app/views/');
return $view;
});
// 处理请求
$application = new Application($di);
// 输出请求类容
echo $application->handle()->getContent();
} catch (Exception $e){
// 异常处理
echo "PhalconException: ", $e->getMessage();
}
这个时候我们访问一下index.php文件会发现有如下输出:
PhalconException: IndexController handler class cannot be loaded
这句话的意思是没有找到默认控制器无法加载,当我们在开发过程中遇到这种错误就需要我们检测我们需要的控制器是否存在了
###1.2 控制器IndexController###
注意:控制器文件首字母必须大写Controller首字母必须大小(在windows下不影响,但是为了编码规范请遵守)
接着我们在控制器文件IndexController.php中加入如下语句:
use PhalconMvcController;
// Index控制器类 必须继承Controller
class IndexController extends Controller {
// 默认Action
public function indexAction() {
echo "<h1>Hello Word!</h1>";
}
}
此时我们再次访问index.php会发现有如下输出
这个时候我们就成功的进入到了控制器处理了请求
###1.3 使用view进行渲染###
在MVC框架中当然离不开View我们来了解一下最基础的view使用
大家不难发现我们在index.php中我们也实例化了View并且赋值给了DI这个时候我们在views目录下创建一个index.phtml文件
加入如下代码:
<?php
echo 'This is a index!';
大家在访问index.php文件会获得如下返回
这个时候返回值处理就进入到了view层了
##2 PhalconTools工具##
在php开发中大家最长用的两个IDE一个是zendstudio一个是phpstorm(使用vim或者是纯文本编辑器的童鞋请绕过)
但是在进行phalcon开发的过程中会发现一个问题phalcon对于这些IDE很不友好没有提示,没有高亮处处报错,这些都是应为C底层框架引起的问题,不过肯定是有个解决方法的,还在苦恼的童鞋可以好好看下接下来的说明**(特别感谢@Marser提供)**
###2.1 phpstrom###
phpstrom是通过IDEA定制的php开发工具,也是官方推荐的开发工具
- 首先我们要下载phalcon-devtools包并且解压 下载地址:phalcon-devtools 也可以在 教程代码库:http://git.oschina.net/wenzhenxi/Phalcon-tutorial本篇教程代码中下载
- phpstrom导入下载好的开发工具
如上图所示,右键单击“External Libraries”,选择“Configure PHP Include Paths”,弹出如下操作框:
单点“+”按钮,在弹出的操作框中,选择到刚才phalcon-devtools的解压目录,然后双击选中“/ide/任一Phalcon版本/Phalcon/”目录,点击“应用”和“确定”即可。如上图所示,我选择的是2.0.8版本。
- phpstorm自动提示Phalcon语法
###2.2 zendstudio###
zendstudio是一款基于Eclipse zend官方维护的开发工具 喜欢eclipse的童鞋的最佳选择
- 下载代码提示包,然后解压 https://github.com/rogerthomas84/PhalconPHPDoc
- 配置 打开“/your/workspace/.metadata/.plugins/org.eclipse.php.core/language/”目录,会看到当前目录下,有一些类似“555a446a”或者“7697c88c”的目录,这些目录名称是随机生成的,每个目录当中都要将刚才解压后的Phalcon整个目录文件复制进去,否则不会生效
- 重启zend studio使用 重启zend studio,按“Project -> Clean -> Clean all projects”的步骤清除所有项目的编译状态,然后再按“Project -> Build All”的步骤重新编译所有项目的状态,zend studio即可识别Phalcon的语法并提示,如下图所示:
##3. 小结##
本小节主要是介绍了一下如果使用phalcon输出helloword并且进入view进行操作,还介绍了PhalconTools工具的使用,在下节我们会着重介绍一下优美的URL路由以及配置文件的使用,喜欢的童鞋请继续关注!
注:笔者能力有限有说的不对的地方希望大家能够指出,也希望多多交流!
Phalcon技术交流:364520707 PhalCon中文社区:287484785 欢迎大家的加入!
- mybatis xml mapper 文件中 if-else 写法
- 深入探索Scala的Option
- 在Clion的IDE中指定命令行参数
- CentOS6 安装并破解Jira 7
- Martin Odersky访谈录所思
- 解决Boost库链接出错问题
- 引入Option优雅地保证健壮性
- java正则校验,密码必须由字母和数字组成
- Spring Boot集成JasperReports生成PDF文档
- Redux框架reducer对状态的处理
- 使用Spring Cloud Security OAuth2搭建授权服务
- Nginx性能优化
- linux 如何正确的关闭mongodb
- 运用Aggregator模式实现MapReduce
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法