时间:2022-10-20 22:31:52 | 浏览:1172
Phalcon 是开源、全功能栈、使用 C 扩展编写、针对高性能优化的 PHP 框架。开发者不需要学习和使用 C 语言的功能, 因为所有的功能都以 PHP 类的方式暴露出来,可以直接使用。Phalcon 也是松耦合的,可以根据项目的需要任意使用其他对象。Phalcon是一套实现MVC架构的高性能PHP应用程序框架。
初始版本发布于2012年11月,开放源代码并基于BSD授权条款。与其他大部分的PHP框架不同,Phalcon是以扩展的方式以C语言所编写,因此Phalcon的执行速度高过其他PHP框架,并且消耗更少的资源,根据官方的测试,Phalcon是目前世界上速度最快的PHP框架, 没有之一。
首先个人认为无论是什么业务,性能瓶颈不主要在程序。一味追求程序的极致性能反而是不理性的。数据库、物理机器配置、磁盘I/O等也都与其性能息息相关,追求一个平衡点,反而是最稳妥的解决方案。当然 ,没有最牛逼的框架,只有最棒的程序员!
THINKPHP任然是最NB的框架!国内已知应用网站:战旗TV(phalcon+swoole)、斗鱼、全民TV。
为什么要使用框架,框架能带来什么? 我个人总结使用框架的好处:
1.可以更好的组织代码和文件夹 代码易维护
2.适合团队开发(新人来了上去就是干)
3.集成安全防御 sql注射,csrf等
4.集成MVC模式 代码页面分离
5.集成成熟的类库 方便调用
6.成熟的社区维护
至于怎样选择自己合适的框架?只能说没有合适的框架,听项目经理的,让你干啥你干啥绝对没错!
正如 Phalcon官网所说,Phalcon不仅关于性能,我们的目标是使其坚固,丰富的功能和易于使用!写一个有情怀的框架真的很棒!
第一步:在百度中搜索Phalcon,进入网站,我们点击网站首页的download,目前该框架的最近版本是3.0。
第二步:找到我们的系统,这里我建议选用二进制的源码编译安装!
第三步:我们根据网站上的提示,下载该框架托管在github上面的二进制源码,如图所示(使用git命令时需要安装yum install git):
第四步:使用putty连接我们的linux系统,在linux系统/usr/local/src/下面输入步骤三图片上的命令,稍等片刻。
第五步:源码下载完毕后会有一个cphalcon目录,我们用命令行切换到
/usr/local/src/cphalcon/build。
第六步:用vi编辑器打开install文件,按照下图配置选择php-config(php安装位置各有不同),默认install没有选择php-config的位置,所以我们要自己动手。
第七步:编辑完成,直接执行./install 动态编译加载php扩展。
第八步:编译完成后打开php.ini文件,添加phalcon的扩展在php.ini中,添加下图的扩展即可。
最后一步php探针验证 !大工告成!
因为Phalcon是松散耦合的,所以其文件结构是松散的,对使用者来说 怎么开心怎么来。
一个简单的phalcon项目MVC模式的官方推荐布局(Apache环境):
-------------/ #网站根目录#
------------app #应用目录#
------------controllers #控制器目录#
----------IndexController.php
------------models #存放数据库模型文件#
------------views #存放视图文件#
----------index
--------index.html
------------config #配置文件#
------------public #公共静态资源#
----------js
----------css
----------images
------------index.php #单入口引导文件#
------------.htaccess #rewrite 规则#
首先 我们打开.htaccess 内容如下:
AddDefaultCharset UTF-8
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond $1 !^(index.php|public)
RewriteRule ^(.*)$ index.php?_url=/$1 [QSA,L]
</IfModule>
上面rewrite的规则告诉我们,如果请求不是我们设置的例外,那么它会把所有的重定向到index.php?_url=****来处理。其实index.php 作为一个引导文件,它的作用像是十字路口交通警察。它作为应用程序的基础,用它来控制应用程序的各个方面。 在这个文件中,你可以实现组件的初始化和应用程序的行为。
首先你必须要明白它需要做的三件事: 1.设置自动加载器 。2.配置依赖注入。(DI) 3.处理应用请求。
在这个index.php里,它将用于加载控制器和模型类。例如,我们可以为控制器注册一个或多个目录来增加应用程序的灵活性的。
代码:
use PhalconLoader;
$loader = new Loader();
$loader->registerDirs(
[
"./app/controllers/",
"./app/models/",
]
);
$loader->register();
服务容器是一个全局存储的将要被使用的应用程序功能包。每次框架需要的一个组件时,会请求这个使用协定好名称的服务容器。因为Phalcon是一个高度解耦的框架(说白了没规则就是他妈的乱), PhalconDi 作为502强力胶水,促使不同组件的集成,以一个透明的方式实现他们一起进行工作。
代码:
use PhalconDiFactoryDefault;
$di = new FactoryDefault();
其目的是初始化请求环境,并接收路由到来的请求,接着分发任何发现的动作;收集所有的响应,并在过程完成后返回它们。
代码:
use PhalconMvcApplication;
$application = new Application($di);
$response = $application->handle();
$response->send();
那么把这些东西组合起来就是我们index.php 的所有内容,如图所示:
上面这些搞完了 你就基本上可以使用Phalcon这个框架了!!!
接下来简单介绍下Phalcon Hello world 的实现:
控制器提供了一堆可以被调用的方法,即:action。action是控制器中用于处理请求的方法。默认情况下,全部 控制器public的方法都会映射到action并且可以通过URL访问。action负责解释请求和创建响应。其中控制器存放在我们在引导文件中注册的目录下,文件的命名格式为(自定义+Controller).php,例如 IndexController.php,adminController.php这个都是可以的。
一个简单控制器文件应该如下面这样的;
<?php
#引用Phalcon基类,别问类在哪里 Phalcon是封闭的#
use PhalconMvcController;
#继承他#
class IndexController extends Controller
{
public function indexAction()
{
}
}
}
首先我们需要在di中注入我们的视图组件,当然视图组件也是可以被单独使用的。
代码如下:
<?php
use PhalconMvcView;
// 注册视图
$di->set(
"view",
function () {
$view = new View();
//设置视图目录
$view->setViewsDir("../app/views/");
//设置当前使用哪个模版解析引擎
$view->registerEngines(
[
".my-html" => "MyTemplateAdapter",
]
);
// 在这里可以把 自己喜欢的模版引擎拿过来用
$view->registerEngines(
[
".my-html" => "MyTemplateAdapter",
".phtml" => "Phalcon\Mvc\View\Engine\Php",
]
);
return $view;
},
true
);
视图代表了应用程序中的用户界面。视图通常是在 HTML 文件里嵌入 PHP 代码,这些代码仅仅是用来展示数据。 视图的任务是当应用程序发生请求时,提供数据给 web 浏览器或者其他工具。PhalconMvcView 和 PhalconMvcViewSimple 负责管理你的MVC应用程序的视图(View)层。
当某个控制器已经完成了它的周期,Phalcon自动将执行传递到视图组件。视图组件将在视图文件夹中寻找一个文件夹名与最后一个控制器名相同,文件命名与最后一个动作相同的文件执行。
整个流程应该是这样的:当controllers文件夹下IndexController.php里面的indexAction方法完成了它的逻辑处理之后,那么Phalcon会自动去视图目录中寻找与当前控制器同名的文件夹index,并加载与其indexAction同名的视图文件index.(html后缀名是在注册视图的时候定义的)。
那么 如何实现一个hello word呢?
代码:
<?php
use PhalconMvcController;
class IndexController extends Controller
{
public function indexAction()
{
$str="Hello Word";
# 给对应的视图文件传递变量 tp的$this->assign()你懂得!#
$this->view->setVar("str",$str);
}
}
?>
那么Phalcon会去找对应的views视图目录下index文件夹里面的index.html。那么在index.html里面值就会被访问到(套路和TP一样的)。
最后喜闻乐见的结果是当你访问了http://域名/控制器名/方法,如
:http://192.168.1.1/index/index.html,就会打印出 Hello Word !正如你所看见的Phalcon就是这么简单!
PS:本文来自wuli锤锤
Thinkphp:=> 简介:是由上海顶想公司开发的一款,PHP写成的,开源的MVC框架;官网:http://www.thinkphp.cn下载:https://github.com/top-think/framework 环境要求:
本文主要简析两个国产的PHP框架ThinkPHP与SpeedPHP。通过学习发现,它俩在很多方面有着相似但又不同的地方:1.单一入口,二者都是单一入口文件。每个app都需要一个入口文件,且只能有一个入口文件。ThinkPHP生而就有多app
PHP框架是什么?PHP框架提供了一个用以构建web应用的基本框架,从而简化了用PHP编写web应用程序的流程。这样不但节省开发时间,有助于建立更稳定的应用,而且减少了重复编码的开发。框架还可以帮助初学者建立更稳定的应用服务,这可以让你花更
截至目前(2014.2), PHP 的最新稳定版本是 PHP5.5, 但有差不多一半的用户仍在使用已经不在维护的 PHP5.2, 其余的一半用户在使用 PHP5.3。因为 PHP 那“集百家之长”的蛋疼语法,加上社区氛围不好,很多人对新版本
Phalcon 是什么,我们为啥要选择它?Phalcon 是开源、全功能栈、使用 C 扩展编写、针对高性能优化的 PHP 框架。开发者不需要学习和使用 C 语言的功能, 因为所有的功能都以 PHP 类的方式暴露出来,可以直接使用。Phalc
对于一个php开发刚刚入门的程序员来说,经常会碰到学习方向的疑惑。如果没有人知道,php新手很难明确自己应该从哪里开始学习。今天w3cschool就给亲爱的小伙伴们分析php语言学习的方向性问题。首先,html是你必须要学习的,因为它是前端
在中国互联网行业膨胀的12-16年,PHP语言凭借自身易上手,开发周期短的优势,深受各中小企业的喜爱。小编也很荣幸在2009年底进入这一行业,为自己谋生分得一杯羹。但是PHP又先天有它的局限性,导致客户很多需求无法得到满足。大家都知道,P
ZWebPHP 框架设计目的:标准化、体验统一、简单可靠、易于扩展后端PHP框架基于PHP、smarty 构建。基于composer自动加载。完全基于API接口设计,API文档自动生成。权限包含菜单访问权限和API接口访问权限。工具类、数据
这也许,不,就是PHP世界中最好的日志组件—— Monolog所有的 PHPer,请站在巨人的肩膀上。随着 Composer 的普及,PHP 组件化开发思想越来越深入人心,我们没有必要重新自己打造轮子,只要确定需求和目标,设计好软件的架构,
PHP的功能越来越强大,里面有着非常丰富的内置函数。资深的PHP程序员对它们可能都很熟悉,但很多的PHP学习者,仍然对一些非常有用的函数不太熟悉。这篇文章里,我们就列举10个你或许不了解但实用的PHP函数,供大家参考和学习。1. php_c
Workerman是一款纯PHP开发的开源高性能的PHP socket 服务器框架。被广泛的用于手机app、移动通讯,微信小程序,手游服务端、网络游戏、PHP聊天室、硬件通讯、智能家居、车联网、物联网等领域的开发。 支持TCP长连接,支持W
框架是帮助初学者创建稳定的程序。使得你可以花更多的时间去创造真正的Web程序,而不是编写重复性的代码。框架第一阶段什么是框架?一直以来php框架被广泛利用,多半都是基本mvc架构模式的,国内外框架有HDPHP框架、ThinkPHP、CI框架
怎样搭建自己一个PHP框架?PHP写了5年,不想用其他框架,想自己搭建一套mvc oop的框架 可以用别人一些类库,但核心orm 之类希望自己写。这是最近遇到了别人的一个问题,5年时间的PHP资深程序是可以独立开发出自己框架。小编今天带来H
PHP的框架很多,有phalcon,kohana ,laravel,Yii,thinkPHP,ROR,HD,,CI,和ROR等,我觉得PHP框架其实本身就是一个工具而已,没有好与不好,只有合不合适。任何东西都没有最好,只是不同的取舍。有人说
ThinkPHP框架人们习惯性又叫它TP框架,是一个轻量级的国产PHP开发框架,快速、兼容而且简单, ThinkPHP可以支持windows/Unix/Linux等服务器环境,正式版需要PHP5.0以上版本支持,支持MySql、PgSQL、