安裝完 Phalcon 后,接下來就是如何搭建自己的應用了臭埋。這里介紹下最簡單的應用搭建罢艾。
一、單一模塊簡單應用
- 首先配置網(wǎng)站訪問的域名笛洛,如:myapp.com夏志,nginx 的配置可以參考 Phalcon 安裝及配置文章, Apache 的參考官方配置苛让。
-
建立web目錄沟蔑,結構如下:
- 入口文件說明
<?php
use Phalcon\Di\FactoryDefault as DI;
use Phalcon\Mvc\Application;
use Phalcon\Mvc\Dispatcher;
use Phalcon\Loader;
use Phalcon\Mvc\View;
$loader = new Loader();
/**
* 注冊命名空間,這里使用命名空間也可以使用文件加載 $loader->registerDirs()
*/
$loader->registerNamespaces([
'App\Controllers' => '../app/controllers/',
'App\Models' => '../app/models/',
])->register();
$loader->register();
/**
* 創(chuàng)建DI容器
*/
$di = new DI();
/**
* 使用命名空間一定要注冊派遣器狱杰,不然會找不到類瘦材。
*/
$di->set('dispatcher', function () {
$dispatcher = new Dispatcher();
$dispatcher->setDefaultNamespace('App\Controllers');
return $dispatcher;
});
//注冊視圖目錄
$di->set('view', function () {
$view = new View();
$view->setViewsDir('../app/views/');
return $view;
});
try {
$application = new Application($di);
echo $application->handle()->getContent();
} catch (Exception $e) {
echo $e->getMessage();
}
二、多模塊應用
- 域名配置和上面類似仿畸,還以 myapp.com 為例食棕。
-
web應用目錄如下:
- 入口文件說明
<?php
use Phalcon\Di\FactoryDefault as DI;
use Phalcon\Mvc\Application;
use Phalcon\Mvc\Dispatcher;
use Phalcon\Mvc\Router;
try {
/**
* 創(chuàng)建DI容器
*/
$di = new DI();
/**
* 注冊路由
*/
$di->set('router', function () {
$router = new Router();
$router->setDefaultModule("frontend");
$router->addGet(':controller/:action', array(
'module' => 'frontend',
'controller' => 1,
'action' => 2,
));
$router->add("/admin/:controller/:action", array(
'module' => 'backend',
'controller' => 1,
'action' => 2,
));
return $router;
});
$application = new Application($di);
/**
* 注冊模塊
*/
$application->registerModules(array(
'frontend' => array(
'className' => 'Multiple\Frontend\Module',
'path' => '../apps/frontend/Module.php'
),
'backend' => array(
'className' => 'Multiple\Backend\Module',
'path' => '../apps/backend/Module.php'
)
));
echo $application->handle()->getContent();
} catch (Exception $e) {
echo $e->getMessage();
}
- Module 文件說明
<?php
namespace Multiple\Frontend;
use Phalcon\Loader;
use Phalcon\Mvc\Dispatcher;
use Phalcon\Mvc\View;
use Phalcon\Db\Adapter\Pdo\Mysql;
class Module
{
/**
* 注冊命名空間
*/
public function registerAutoloaders()
{
$loader = new Loader();
$loader->registerNamespaces(array(
'Frontend\Controllers' => '../apps/frontend/controllers/',
'Frontend\Models' => '../apps/frontend/models/',
));
$loader->register();
}
/**
* 注冊服務
*/
public function registerServices($di)
{
//注冊派遣器
$di->set('dispatcher', function () {
$dispatcher = new Dispatcher();
$dispatcher->setDefaultNamespace('Frontend\Controllers\\');
return $dispatcher;
});
//注冊視圖
$di->set('view', function () {
$view = new View();
$view->setViewsDir('../apps/frontend/views/');
return $view;
});
//注冊數(shù)據(jù)庫連接服務
$di->set('db', function () {
return new Database(array(
"host" => "localhost",
"username" => "root",
"password" => "secret",
"dbname" => "invo"
));
});
}
}
想了解更多,請查看這里的 教程错沽。