高性能Phalcon入门教程.docx
- 文档编号:6499856
- 上传时间:2023-01-07
- 格式:DOCX
- 页数:9
- 大小:143.78KB
高性能Phalcon入门教程.docx
《高性能Phalcon入门教程.docx》由会员分享,可在线阅读,更多相关《高性能Phalcon入门教程.docx(9页珍藏版)》请在冰豆网上搜索。
高性能Phalcon入门教程
本次为大家分享的一款php的高性能框架Phalcon入门教程。
教程简单,旨在为大家更快速的了解并使用它,适合人群(喜欢折腾的)
首先个人认为无论是什么业务性能瓶颈不主要在程序,一味地追求程序的极致性能反而是不理性的,数据库,物理机器配置,磁盘I/O等也都与其性能息息相关,追求一个平衡点,反而是最稳妥的解决方案。
当然,没有最牛逼的框架,只有最棒的程序员!
当然THINKPHP任然是最NB的框架!
国内已知应用网站:
战旗TV(phalcon+swoole),斗鱼,全民TV
我们为什么要使用框架,框架能给我们带来什么
我个人总结使用框架的好处:
1.可以更好的组织代码和文件夹代码易维护
2.适合团队开发(新人来了上去就是干
)
3.安全sql注射,csrf等
4.集成MVC模式代码页面分离
5.集成成熟的类库方便调用
6.成熟的社区维护
怎样选择自己合适的框架
没有合适的框架,听项目经理的,让你干啥你干啥绝对没错!
Phalcon是什么,我们为啥要选择它
Phalcon是开源、全功能栈、使用C扩展编写、针对高性能优化的PHP框架。
开发者不需要学习和使用C语言的功能,因为所有的功能都以PHP类的方式暴露出来,可以直接使用。
Phalcon也是松耦合的,可以根据项目的需要任意使用其他对象。
Phalcon是一套实现MVC架构的高性能PHP应用程序框架。
初始版本发布于2012年11月,开放源代码并基于BSD授权条款。
与其他大部分的PHP框架不同,Phalcon是以扩展的方式以C语言所编写,因此Phalcon的执行速度高过其他PHP框架,并且消耗更少的资源,根据官方的测试,Phalcon是目前世界上速度最快的PHP框架,没有之一。
正如Phalcon官网所说---->
Phalcon不仅关于性能,我们的目标是使其坚固,丰富的功能和易于使用!
情怀情怀真的很重要!
环境搭建:
Linux下安装:
参考地址
Winddos下安装:
参考地址
手动文件结构布置(也阔以用phalcon提供项目构建开发工具):
因为Phalcon是松散耦合的,所以其文件结构是松散的,对使用者来说怎么开心怎么来(选择你适合的组件完成你需要的功能)。
一个简单的phalcon项目MVC模式的官方推荐布局(Apache环境):
--------------/#网站根目录#
------------app#应用目录#
------------controllers#控制器目录#
----------IndexController.php
------------models#存放数据库模型文件#
------------views#存放视图文件#
----------index
--------index.html
------------config#配置文件#
------------public#公共静态资源#
----------js
----------css
----------images
------------index.php#单入口#
------------.htaccess#rewrite规则#
首先我们打开.htaccess内容如下
AddDefaultCharsetUTF-8
RewriteEngineOn
RewriteCond$1!
^(index\.php|public)
RewriteRule^(.*)$index.php?
_url=/$1[QSA,L]
上面rewrite的规则告诉我们如果请求不是我们设置的例外,那么它会把所有的重定向到我们的index.php?
_url=****来处理!
。
那么index.php作为一个引导文件,它的作用就像十字路口交通警察一样!
它作为应用程序的基础,用它来控制应用程序的各个方面。
在这个文件中,你可以实现组件的初始化和应用程序的行为。
首先你必须要明白它需要做的三件事
1.设置自动加载器:
在这个index.php里,它将用于加载控制器和模型类。
例如,我们可以为控制器注册一个或多个目录来增加应用程序的灵活性的。
代码:
usePhalcon\Loader;
$loader=newLoader();
$loader->registerDirs(
[
"./app/controllers/",
"./app/models/",
]
);
$loader->register();
2.配置依赖注入(DI):
服务容器是一个全局存储的将要被使用的应用程序功能包。
每次框架需要的一个组件时,会请求这个使用协定好名称的服务容器。
因为Phalcon是一个高度解耦的框架(说白了没规则就是他妈的乱),Phalcon\Di作为502强力胶水,促使不同组件的集成,以一个透明的方式实现他们一起进行工作。
代码:
usePhalcon\Di\FactoryDefault;
$di=newFactoryDefault();
3.处理应用请求:
其目的是初始化请求环境,并接收路由到来的请求,接着分发任何发现的动作;收集所有的响应,并在过程完成后返回它们。
代码:
usePhalcon\Mvc\Application;
$application=newApplication($di);
$response=$application->handle();
$response->send();
那么把这些东西组合起来就是我们index.php的所有内容
如下面的代码所示:
php
//这些类在哪呢
usePhalcon\Loader;
usePhalcon\Mvc\View;
usePhalcon\Mvc\Application;
usePhalcon\Di\FactoryDefault;
usePhalcon\Mvc\UrlasUrlProvider;
usePhalcon\Db\Adapter\Pdo\MysqlasDbAdapter;
//注册一个自动加载器它的作用告诉程序当接受一个请求的时候我特么该去什么地方找人来帮忙去处理这个东西
//你自己流程操作的话基本上可以这么来
//当前你没必要按着这个流程来,phalcon就是这样子对你开启散养模式
$loader=newLoader();
$loader->registerDirs(
[
"./app/controllers/",
"./app/models/",
]
);
$loader->register();
//这个东西就像是个大冰箱把你的啤酒饮料矿泉水瓜子花生八宝粥都放进去用的时候就直接拿过了用就好了,喜欢就用不喜欢就放在这
//我们框架的好多工具都是通过di这个东西放进去用的,
$di=newFactoryDefault();
//通过di提供的方法把西瓜放进去
$di->set(
"view",
function(){
$view=newView();
$view->setViewsDir("../app/views/");
return$view;
}
);
//通过di提供的方法把啤酒放进去
$di->set(
"url",
function(){
$url=newUrlProvider();
$url->setBaseUri("/");
return$url;
}
);
//收集信息做处理了
$application=newApplication($di);
try{
//设置头信息
$response=$application->handle();
$response->send();
}catch(\Exception$e){
echo"Exception:
",$e->getMessage();
}
图片版:
上面这些搞完了你就基本上可以使用Phalcon这个框架了!
!
!
接下来简单的介绍下PhalconHelloworld的实现:
使用控制器:
控制器提供了一堆可以被调用的方法,即:
action。
action是控制器中用于处理请求的方法。
默认情况下,全部控制器public的方法都会映射到action并且可以通过URL访问。
action负责解释请求和创建响应。
其中控制器存放在我们在引导文件中注册的目录下,文件的命名格式为(自定义+Controller).php,例如IndexController.php,adminController.php这个都是可以的。
一个简单控制器文件应该如下面这样的;
php
#引用Phalcon基类,别问类在哪里Phalcon是封闭的#
usePhalcon\Mvc\Controller;
#继承他#
classIndexControllerextendsController
{
publicfunctionindexAction()
{
}
}
}
使用视图:
使用视图首先我们需要在di中注入我们的视图组件,当然视图组件也是可以被单独使用的
在引导程序中我们首先使用di注入我们的视图组件
代码如下:
php
usePhalcon\Mvc\View;
//注册视图
$di->set(
"view",
function(){
$view=newView();
//设置视图目录
$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浏览器或者其他工具。
Phalcon\Mvc\View和Phalcon\Mvc\View\Simple负责管理你的MVC应用程序的视图(View)层。
当某个控制器已经完成了它的周期,Phalcon自动将执行传递到视图组件。
视图组件将在视图文件夹中寻找一个文件夹名与最后一个控制器名相同,文件命名与最后一个动作相同的文件执行。
整个流程应该是这样的:
当controllers文件夹下IndexController.php里面的indexAction方法完成了它的逻辑处理之后那么Phalcon会自动去视图目录中寻找与当前控制器同名的文件夹index,并加载与其indexAction同名的视图文件index.(html后缀名是在注册视图的时候定义的)。
实现Helloword:
那么如何实现一个helloword呢?
代码:
php
usePhalcon\Mvc\Controller;
classIndexControllerextendsController
{
publicfunctionindexAction()
{
$str='HelloWord';
#给对应的视图文件传递变量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
就会打印出HelloWord!
正如你所看见的Phalcon就是这么简单!
你入门了
荆轲刺秦王!
!
!
版本说明:
我最初接触到Phalcon的时候,是大约在2年前左右的时间,当时版本记得是1.3.30,官方当时文档还是全英文的,讲的也不是很全面。
一路走来版本已经到3.0了。
建议大家还是去官网看看,文档相对完善很多!
内容太多了自己去了解吧!
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 性能 Phalcon 入门教程