今天一位朋友让我架设Phalcon+Apache+PHP+MySQL,我就帮忙在本地部署一下了。由于要求是Apache+PHP+MySQL,又是Windows系统。我就直接用phpstudy环境集成包了,因为phpstudy自带了Apache+PHP+MySQL,我就不再一个一个的去安装了,就不用再浪费大家的时间了,直接进入主题吧!
无论怎么搞,总体来说,原理都是相通的!具体操作如下:
一、下载Phalcon
由于是Windows系统,Phalcon虽然是一个高性能的PHP框架,但是它却是PHP C 扩展 (Phalcon)。因此,我们只需要开启Phalcon这个扩展就可以了。而恰好,Windows系统下面的扩展都是以*.dll形式存在的。因此我们只需要下载类似“php_phalcon.dll”这个就可以了。
下载地址:https://github.com/phalcon/cphalcon/releases/
注意:下载的时候需要看PHP版本多少?多少位?线程安全是开启还是禁止的?
下图是我的截图,具体内容如下:PHP版本是PHP7.0,32位,线程安全是禁止的(也就是说是非线程安全,nts版本)。
综上所述:我就只能下载“phalcon_x86_vc14_php7.0_3.4.3-2609_nts”这个了。
二、安装Phalcon
安装Phalcon通俗的讲,就是开启Phalcon这个扩展。具体操作如下:
1、解压上面地址下载的ZIP压缩包;
2、把“php_phalcon.dll”复制到“F:\phpStudy\php\php-7.0.12-nts\ext”目录下;
这里需要注意一点,主要是复制到ext这个目录下,因为这个目录下都是来装php扩展的。
3、PHP配置文件 php.ini 添加以下代码来开启Phalcon扩展:
extension=php_phalcon.dll
4、保存并重启phpstudy服务,再查看phpinfo是否成功安装Phalcon(成功开启Phalcon扩展)?不言而喻,结果当然是成功的!
三、运行Phalcon框架,小试牛刀一下
为了讲解更明白一点,我就把Phalcon框架简单入门讲解一下吧!好让你有一个思路。
2、根据上面的文件结构,创建文件即可!由于我这里是小试牛刀一下,我就不创建多了,我只创建了如下几个:
F:\phpStudy\WWW\phalcon\app\controllers\IndexController.php 代码:
<?php
use Phalcon\Mvc\Controller;
class IndexController extends Controller
{
public function indexAction()
{
echo '<h1>Hello!</h1>';
}
}
F:\phpStudy\WWW\phalcon\app\views\index.phtml 代码:
<?php
echo "<h1>欢迎来到付杰博客!Phalcon框架测试!</h1>";
F:\phpStudy\WWW\phalcon\public\index.php 代码:
<?php
use Phalcon\Loader;
use Phalcon\Mvc\View;
use Phalcon\Mvc\Application;
use Phalcon\Di\FactoryDefault;
use Phalcon\Mvc\Url as UrlProvider;
// Define some absolute path constants to aid in locating resources
define('BASE_PATH', dirname(__DIR__));
define('APP_PATH', BASE_PATH . '/app');
// Register an autoloader
$loader = new Loader();
$loader->registerDirs(
[
APP_PATH . '/controllers/',
APP_PATH . '/models/',
]
);
$loader->register();
// Create a DI
$di = new FactoryDefault();
// Setup the view component
$di->set(
'view',
function () {
$view = new View();
$view->setViewsDir(APP_PATH . '/views/');
return $view;
}
);
// Setup a base URI
$di->set(
'url',
function () {
$url = new UrlProvider();
$url->setBaseUri('/');
return $url;
}
);
$application = new Application($di);
try {
// Handle the request
$response = $application->handle();
$response->send();
} catch (\Exception $e) {
echo 'Exception: ', $e->getMessage();
}
3、由于是Apache,为了让Phalcon框架允许使用友好的URL和路由器组件,需要做两个伪静态设置:
F:\phpStudy\WWW\phalcon\.htaccess 规则:
# phalcon/.htaccess
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteRule ^$ public/ [L]
RewriteRule ((?s).*) public/$1 [L]
</IfModule>
F:\phpStudy\WWW\phalcon\public\.htaccess 规则:
# phalcon/public/.htaccess
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^((?s).*)$ index.php?_url=/$1 [QSA,L]
</IfModule>
4、重启服务,再访问“http://127.0.0.1/phalcon/”,结果如下:
总结:
如果有不懂Phalcon框架的,需要了解更多Phalcon知识,请查看Phalcon官方文档:
https://docs.phalconphp.com/3.4/en/