前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >phalcon-入门篇2(HelloWord与PhalconTools)

phalcon-入门篇2(HelloWord与PhalconTools)

作者头像
喵了个咪233
发布2018-03-02 11:26:29
1.1K0
发布2018-03-02 11:26:29
举报

#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版本。

  1. 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路由以及配置文件的使用,喜欢的童鞋请继续关注!

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

Phalcon技术交流:364520707 PhalCon中文社区:287484785 欢迎大家的加入!

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档