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 Phalcon\Loader;
use Phalcon\Mvc\View;
use Phalcon\Mvc\Application;
use Phalcon\DI\FactoryDefault;

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 Phalcon\Mvc\Controller;

// 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开发工具,也是官方推荐的开发工具

  1. 首先我们要下载phalcon-devtools包并且解压

    下载地址:phalcon-devtools

    也可以在 教程代码库:http://git.oschina.net/wenzhenxi/Phalcon-tutorial本篇教程代码中下载

  2. phpstrom导入下载好的开发工具

    如上图所示,右键单击“External Libraries”,选择“Configure PHP Include Paths”,弹出如下操作框:

    单点“+”按钮,在弹出的操作框中,选择到刚才phalcon-devtools的解压目录,然后双击选中“/ide/任一Phalcon版本/Phalcon/”目录,点击“应用”和“确定”即可。如上图所示,我选择的是2.0.8版本。

  3. phpstorm自动提示Phalcon语法

2.2 zendstudio

zendstudio是一款基于Eclipse zend官方维护的开发工具 喜欢eclipse的童鞋的最佳选择

  1. 下载代码提示包,然后解压

    https://github.com/rogerthomas84/PhalconPHPDoc

  2. 配置

    打开“/your/workspace/.metadata/.plugins/org.eclipse.php.core/language/”目录,会看到当前目录下,有一些类似“555a446a”或者“7697c88c”的目录,这些目录名称是随机生成的,每个目录当中都要将刚才解压后的Phalcon整个目录文件复制进去,否则不会生效

  3. 重启zend studio使用

    重启zend studio,按“Project -> Clean -> Clean all projects”的步骤清除所有项目的编译状态,然后再按“Project -> Build All”的步骤重新编译所有项目的状态,zend studio即可识别Phalcon的语法并提示,如下图所示:

3. 小结

本小节主要是介绍了一下如果使用phalcon输出helloword并且进入view进行操作,还介绍了PhalconTools工具的使用,在下节我们会着重介绍一下优美的URL路由以及配置文件的使用,喜欢的童鞋请继续关注!

注:笔者能力有限有说的不对的地方希望大家能够指出,也希望多多交流!

时间: 2024-09-15 20:17:28

phalcon-入门篇2(HelloWord与PhalconTools)的相关文章

Phalcon入门教程之模型CURD(2)

原文发表于:Phalcon入门教程之模型CURD(2) 上一篇 Phalcon入门教程之模型CURD(1) 中介绍了 Phalcon 模型的 insert 和 select 操作,本篇将介绍 update 和 delete 的用法.文中所用的示例代码皆沿用上一篇的数据表,这里不在赘述. 更新记录 Phalcon 模型更新记录的示例代码如下: $articleModel = new ArticlesModel(); //先调用 findFirst() 获取一条记录,返回值是当前模型对象 $arti

Phalcon入门教程之模型CURD(1)

原文发表于:Phalcon入门教程之模型CURD(1) 上一篇<Phalcon入门教程之模型>中介绍了数据库模型操作的一些基础功能,本篇将介绍模型的 select 和 insert 用法.由于数据库模型操作的内容比较多和细,所以本篇只是粗略的介绍基础用法,以及补充文档中没有提及的一些用法和注意点.因此,强烈建议大家在熟读文档的前提下,再阅读此篇教程. 数据表 假设数据表名为 test_articles,数据结构及记录下: mysql> select * from test_article

ASP漏洞全接触-入门篇

随着B/S模式应用开发的发展,使用这种模式编写应用程序的程序员也越来越多.但是由于这个行业的入门门槛不高,程序员的水平及经验也参差不齐,相当大一部分程序员在编写代码的时候,没有对用户输入数据的合法性进行判断,使应用程序存在安全隐患.用户可以提交一段数据库查询代码,根据程序返回的结果,获得某些他想得知的数据,这就是所谓的SQL Injection,即SQL注入. SQL注入是从正常的WWW端口访问,而且表面看起来跟一般的Web页面访问没什么区别,所以目前市面的防火墙都不会对SQL注入发出警报,如果

扩展你的PHP之入门篇

1. 扩展你的php2. 扩展的3种方式3. extension dll方式的扩展4. 小结 首先注意, 以下所有的一切皆在win下进行, 使用的工具的vc++6.0.扩展你的PHPPHP以方便快速的风格迅速在web系统开发中占有了重要地位. PHP本身提供了丰富的大量的函数及功能. 长话短说. 我们看看我们如何进行扩展. 扩展的3种方式External ModulesBuilt-in ModulesThe Zend Engine3种方式的优缺点可参见PHP手册.http://www.php.n

Flash动画基础教程①入门篇

flash动画|基础教程 這個教程是本人的一些經驗之談,為了初學者的入門教程,未經本人許可請勿轉載!謝謝 Flash动画基础教程--入门篇①首先我们来说说什么是Flash? Flash是Macromedia公司出品的软件,对于Flash是什么很多的描述,大致是"交互性矢量多媒体制作软件"的意思!首先,它是一种多媒体制作软件,Flash的产品往往都是一些"有声有色"给人视觉冲击的动画.其次,Flash是以矢量图为基础的,矢量图最大的特点就是它能无限的缩放,不会因为图像

.NET Remoting程序开发入门篇

程序 一.Remoting基础 什么是Remoting,简而言之,我们可以将其看作是一种分布式处理方式.从微软的产品角度来看,可以说Remoting就是DCOM的一种升级,它改善了很多功能,并极好的融合到.Net平台下.Microsoft? .NET Remoting 提供了一种允许对象通过应用程序域与另一对象进行交互的框架.这也正是我们使用Remoting的原因.为什么呢?在Windows操作系统中,是将应用程序分离为单独的进程.这个进程形成了应用程序代码和数据周围的一道边界.如果不采用进程间

【IPFS + 区块链 系列】 入门篇 - IPFS+IPNS+个人博客搭建

孔壹学院:国内区块链职业教育引领品牌. 作者:黎跃春,孔壹学院创始人,区块链.高可用架构师 微信:liyc1215 区块链博客:http://liyuechun.org 在阅读这篇文章之前,你需要先学习[IPFS + 区块链 系列] 入门篇 - IPFS环境配置这篇文章. 目录 1. 如何在IPFS新增一个文件 1.1 新建file.txt文件 1.2 查看ipfs相关命令 1.3 将file.txt添加到ipfs节点 2. 通过ipfs创建目录存储文件 3. 如何在IPFS新增一个目录 3.1

【IPFS + 区块链 系列】 入门篇 - IPFS + Ethereum (上篇)-js-ipfs-api

孔壹学院:国内区块链职业教育引领品牌. 作者:黎跃春,孔壹学院创始人,区块链.高可用架构师 微信:liyc1215 区块链博客:http://liyuechun.org Ebay项目 基于以太坊Ethereum & IPFS的去中心化Ebay区块链项目详情链接 目录 1. 内容简介 2. IPFS-HTTP效果图 3. 实现步骤 3.1 安装create-react-app 3.2 React项目创建 3.3 运行React项目 3.4 浏览项目 3.5 安装ipfs-api 3.6 完成UI逻

phalapi-入门篇6(小技巧和浅谈API适用范围以及入门篇总结)

phalapi-入门篇6(小技巧和浅谈API适用范围以及入门篇总结) 前言 先在这里感谢phalapi框架创始人@dogstar,为我们提供了这样一个优秀的开源框架. 本篇文章的目的在于把框架自带的一些好用,封装好的一些方便开发的类库简单的说一下,灵活使用可以提高开发效率,再就是因为在交流过程中有很多童鞋提出了一些关于什么样的项目怎么用API和web端怎么使用API这类的问题,我就我的理解把我的一些想法和大家交流一下,最后是对于入门篇做一下总结,以及对后面的一些教程做一下说明. 附上: 官网地址