关于Phalcon
Phalcon是一个PHP框架,促进了模型-视图-控制器体系结构,有许多框状的功能,你会期望在这样一款软件- ORM,模板引擎,路由,高速缓存等。关于它的一个很酷的事情是性能方面,它可以说比其他框架更快。 原因是它不是你的普通PHP框架的文件,你只是复制到你的服务器,你是好去。 它实际上是一个PHP扩展写的C.
在本文中,我们将介绍如何在运行Ubuntu 12.04的VPS上开始使用Phalcon。 如果你正在跟踪,我想你已经有你的服务器设置了LAMP(Apache,MySQL和PHP)。 这是一个很好的DigitalOcean教程 ,以帮助您设置如果需要的话。
安装
你需要做的第一件事是安装Phalcon的要求。 运行以下三个命令:sudo apt-get update sudo apt-get install git-core gcc autoconf make sudo apt-get install php5-dev php5-mysql
(如果您已经安装的Git比如git的核心 ),如果您已经安装它们,你可以从命令删除软件包。 接下来,您需要将框架库repo克隆到您的系统上:
git clone git://github.com/phalcon/cphalcon.git
完成后,使用此命令导航到以下文件夹:
cd cphalcon/build
并运行安装文件以安装扩展:
sudo ./install
你下一步需要做的是编辑你的php.ini文件:
nano /etc/php5/apache2/php.ini
并在其末尾添加以下行:
extension=phalcon.so
然后重新启动服务器以使更改生效:
sudo service apache2 restart
这应该做。 要检查是否Phalcon已成功安装,您将需要检查的phpinfo()语句的输出。 如果你不知道如何着手,创建一个名为info.php的地方在那里,你可以从浏览器访问它,并在下面的行粘贴文件:
<?php phpinfo(); ?>
保存文件并将浏览器指向它。 在该页面上显示的PHP信息中,您应该看到已启用Phalcon框架,并验证其版本。
您的第一个Phalcon项目结构
如果你使用其他PHP框架,你会期望一些框架相关的文件在你的项目的文件夹结构。 随着Phalcon,所有这些文件都在内存中随手可得,因此,所有你需要做上手Apache的文档根目录的地方创建一个空文件夹结构(默认在/ var / WWW)。 推荐的方法如下:project_name/ app/ controllers/ models/ views/ public/ css/ img/ js/
所以,你有什么在这里是有2个主要文件夹项目文件夹: 应用程序和公众 。 第一个将包含您的应用程序的逻辑(大多是PHP),而第二个是您的浏览器将指向的位置,并一方面被重定向到应用程序文件夹中的资源,并且可以访问所有前端资源。
引导
您需要创建的第一个也是最重要的文件是你的index.php文件应用程序将使用来引导。 在应用程序的public /文件夹中创建此文件:nano /var/www/project_name/public/index.php
并粘贴在以下代码中:
<?php try { //Register an autoloader $loader = new \Phalcon\Loader(); $loader->registerDirs(array( '../app/controllers/', '../app/models/' ))->register(); //Create a DI $di = new Phalcon\DI\FactoryDefault(); //Setup the view component $di->set('view', function(){ $view = new \Phalcon\Mvc\View(); $view->setViewsDir('../app/views/'); return $view; }); //Setup a base URI so that all generated URIs include the "tutorial" folder $di->set('url', function(){ $url = new \Phalcon\Mvc\Url(); $url->setBaseUri('/project_name/'); return $url; }); //Handle the request $application = new \Phalcon\Mvc\Application($di); echo $application->handle()->getContent(); } catch(\Phalcon\Exception $e) { echo "PhalconException: ", $e->getMessage(); }
有关此文件包含的更多信息,您可以检查官方Phalcon网站。 但请注意,您需要更换此行:
$url->setBaseUri('/project_name/');
使用适合您的情况,即包含项目文件夹的名称。
URL重写
Phalcon将需要使用.htaccess文件,使一些重要的重新路由,并从窥探保护应用程序的文件夹结构。 为此,需要从Apache的mod_rewrite的模块启用和.htaccess文件需要被允许进行修改Apache的说明。所以,如果这不是你的情况下,修改Apache的虚拟主机文件在其下Phalcon应用程序(默认到/ var / WWW,如果你不具备这种应用某些特定的虚拟主机),并确保允许覆盖是的/ var / www目录下设置为所有 (同样,如果你的应用是在默认的Apache文档根目录)。 您可以使用以下命令编辑默认虚拟主机文件:
nano /etc/apache2/sites-available/default
并在您看到此块,使更改对应于以下。
<Directory /var/www/> Options Indexes FollowSymLinks MultiViews AllowOverride All Order allow,deny allow from all </Directory>
最后,确保mod_rewrite已在Apache启用。 要检查是否已启用,请使用以下命令:
apache2ctl -M
如果你在列表中看到“rewrite_module”,你就没事了。 如果不是,请使用以下命令启用模块:
a2enmod rewrite
在所有这些步骤之后,或者在您必须执行的任何个人之后,让Apache重新启动,以使它们生效:
sudo service apache2 restart
现在,这是照顾,创建主项目文件夹.htaccess文件:
nano /var/www/project_name/.htaccess
并粘贴在以下指令中:
<IfModule mod_rewrite.c> RewriteEngine on RewriteRule ^$ public/ [L] RewriteRule (.*) public/$1 [L] </IfModule>
这将重新路由项目主文件夹的所有请求到公共/文件夹。 现在,创建另一个.htaccess文件,但这次是在公共/文件夹:
nano /var/www/project_name/public/.htaccess
并粘贴在以下指令中:
<IfModule mod_rewrite.c> RewriteEngine On RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^(.*)$ index.php?_url=/$1 [QSA,L] </IfModule>
这将重定向到这个文件夹的所有请求到index.php文件(如果一个实际文件按照请求的名称不存在于该文件夹或下面 - 你知道,前端资产仍然可以访问)。
您的第一个控制器
如果现在将浏览器指向项目文件夹,您将得到无法加载Index控制器类的错误。 这是因为默认情况下,如果请求中没有传递控制器,那么应用程序需要使用其中的一个。 因此,让我们创建一个可显示的Hello World到页面上。创建控制器文件夹下的文件IndexController.php:
nano /var/www/project_name/app/controllers/IndexController.php
在里面,粘贴以下内容:
<?php class IndexController extends \Phalcon\Mvc\Controller { public function indexAction() { echo "<h1>Hello World!</h1>"; } }
你会发现,我们扩展默认PhalconController类并将其命名为索引控制器 (所有控制器名需要用“控制器”来结束。这个类里面,我们定义一个方法(所有方法,也叫动作,需要结束单词“行动”)呼吁的indexAction。因为它被称为指数,它也是获得此控制器如果该请求未指定特定的行动被称为第一个动作。
如果现在从浏览器访问项目文件夹,您应该看到回显的字符串。
结论
在本教程中,我们已经了解了如何安装Phalcon并开始使用您的项目。 在下一篇文章中,我们将进一步讨论如何利用Phalcon MVC框架以及如何访问存储在数据库中的信息。
文章提交者: 丹尼