时间:2022-10-20 22:31:52 | 浏览:837
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锤锤
刚刚,黄石市港口建设传来重大利好消息《黄石港总体规划(2035年)》(以下简称《规划》)获得交通运输部和湖北省人民政府的联合批复。这意味着黄石市港口建设和管理有了更为坚实的规划依据和技术支撑,将有效指导黄石港口岸线资源保护和开发,也为黄石建
除了有着华丽外观和高档配置的车款外,美利达15年的公路车产品线当然也没有忘记针对入门级消费者的入门休闲公路车系列,其中入门RIDE系列就是非常受欢迎的一个。RIDE 900采用高碳钢材质的车架,设计方向完全针对城市中的入门级休闲公路车友,装
文玩核桃怎么选核桃品种很多比如,从纹路分有麦穗,满天星…外形分,鸡心,官帽,狮子头,南疆石!无论选什么品种,首先要适合自己!拇指和食指做ok状!核桃刚好穿过去就适合自己手掌把玩,别追求太大!常言道,千里难挑一,万里难配对儿,配对儿时除了外形
这是本人把玩十余年的核桃,之前在微头条发过,受到很多文玩核桃爱好者的热烈讨论,也有很多朋友让我写写有关核桃的知识,于是我把自己的经验和其他资深玩友的经验总结一下,这次主要说怎么挑核桃?先声明一下,我不是专家,我和你们一样是文玩爱好者,只不过
酸枝木主要产于东南亚各国,结构致密,质地温润,纹理细腻,可沉于水,因为剖开后有一种略酸的香气故而得名。酸枝木在颜色及品质上的区分比较复杂,有黑酸枝、红酸枝,另外还有白枝和花枝,其中黑酸枝最为名贵且难得,真正的黑酸枝很少见。品质好、色泽深的老
快速恢复视力——培养鹰视力前言:注意用眼卫生,环境光线充足,及时远眺休息。饮食多注意补充维生素,看书阅读姿势正确。“眼睛是心灵的窗户”,使用电子智能产品虽说是容易令人着迷,但对于我们来说,眼睛和视力才是根本,没有好视力,再美好的事物也会离我
世界视力日—理解视觉本质,快速恢复视力1.合理用眼与正确用眼合理用眼侧重于时间安排,正确用眼侧重于方式方法。随着你正确用眼习惯的延长,你感受到的清晰一点点提高。最终得到整体视力的好转和提高,视力是一种无意识的本能行为,当你形成良好的用眼习惯
快速恢复视力——关于手机使用的特别说明前言:注意用眼卫生,环境光线充足,及时远眺休息。饮食多注意补充维生素,看书阅读姿势正确。“眼睛是心灵的窗户”,使用电子智能产品虽说是容易令人着迷,但对于我们来说,眼睛和视力才是根本,没有好视力,再美好的
快速恢复视力——恢复的密码在意识里前言:注意用眼卫生,环境光线充足,及时远眺休息。饮食多注意补充维生素,看书阅读姿势正确。“眼睛是心灵的窗户”,使用电子智能产品虽说是容易令人着迷,但对于我们来说,眼睛和视力才是根本,没有好视力,再美好的事物
快速打造鹰视力——没有正确用眼就没有恢复(方法剖析)前言:注意用眼卫生,环境光线充足,及时远眺休息。饮食多注意补充维生素,看书阅读姿势正确。“眼睛是心灵的窗户”,使用电子智能产品虽说是容易令人着迷,但对于我们来说,眼睛和视力才是根本,没有好