phalcon:整合官方多模块功能,方便多表查询

项目分为:

namespace Multiple\Backend;
namespace Multiple\Frontend;

目录结构如下:

public/index.php的大致写法:

多模块功能:

// Handle the request
$application = new Application($di);
//加入模块分组配置
$application->registerModules(
array(
'frontend' => array(
'className' => 'Multiple\Frontend\Module',
'path' => '../app/frontend/Module.php',
),
'backend' => array(
'className' => 'Multiple\Backend\Module',
'path' => '../app/backend/Module.php',
)
)
);

  

来看下多模块下Module.php的写法,

backend/Module.php

namespace Multiple\Backend;

use Phalcon\Loader,
Phalcon\Mvc\Dispatcher,
Phalcon\DiInterface,
Phalcon\Mvc\View,
Phalcon\Mvc\ModuleDefinitionInterface; class Module implements ModuleDefinitionInterface { public function registerAutoloaders( DiInterface $di = NULL)
{
$loader = new Loader();
$loader->registerNamespaces(array(
'Multiple\Backend\Controllers' => __DIR__ .'/controllers/'
))->register();
$loader->registerDirs(
array(
'modelsDir' => '../app/models/', #注意这里,必须填写,否则models/下的文件不能共用。
)
)->register(); } public function registerServices( \Phalcon\DiInterface $di)
{
$di->set("dispatcher", function(){
$dispatcher = new Dispatcher();
$dispatcher->setDefaultController("Multiple\Backend\Controllers");
return $dispatcher;
}); $di->set("view", function(){
$view = new View();
$view->setViewsDir("../app/backend/views/");
$view->registerEngines(array(
'.phtml' => 'Phalcon\Mvc\View\Engine\Php'
));
return $view;
}); }
}

  

models/下的model文件,不需要命名空间,直接写:

use \Phalcon\Mvc\Model;
class Album extends Model {
...... }

controllers/下面的model调用:

namespace Multiple\Backend\Controllers;
use Phalcon\Paginator\Adapter\QueryBuilder as PaginatorQueryBuilder;
class AlbumController extends ControllerBase { public function initialize(){
parent::initialize();
} public function indexAction()
{ $currentPage = $this->getParam('page');
$builder = $this->modelsManager->createBuilder()
->columns("aid,atid,name,mid,nid,create_time")
->from("Album")
->where("enable = 0")
->orderBy("aid ASC"); $paginator = new PaginatorQueryBuilder(array(
'builder' => $builder,
'limit' => 10,
'page' => $currentPage
));
$category = '';
if( $this->getAlbumCategory() )
{
foreach($this->getAlbumCategory() as $k=>$v)
{
$category[$v['atid']] = $v;
}
} }

  

  

最新文章

  1. 享元模式(Flyweight Pattern)
  2. js面向对象笔记
  3. 如何去掉底部的织梦版权信息powered by dedecms
  4. Java 并发性和多线程
  5. YAML初探
  6. Android编程: Activity生命周期和LogCat使用
  7. PhpExcel数组输出到Excel浏览器下载
  8. UI/UE对个性化推荐的影响
  9. [Ember] Creating Your First Ember.js Project with Ember-CLI
  10. IntelliJ IDEA 14 注册码生成java代码(转)
  11. sqlserver 注释提取工具
  12. C++ protected访问权限思考
  13. 201521123035《Java程序设计》第一周学习总结
  14. Cleaner, more elegant, and wrong(翻译)
  15. Android的SeekBar和RateBar的使用-android学习之旅(三十二)
  16. linux卸载erlang
  17. jquery+jquery.rotate实现图片旋转效果
  18. android:layout_margin真实含义 及 自己定义复合控件 layout()运行无效的问题解决
  19. CF1129C Morse Code
  20. 转【面向代码】学习 Deep Learning(二)Deep Belief Nets(DBNs)

热门文章

  1. redis add 'vm.overcommit_memory = 1' to /etc/sysctl.conf
  2. linux环境配置nginx导致页面不刷新
  3. Python电影投票系统
  4. KGX滚动分页源码
  5. C#加快Bitmap的访问速度
  6. C#中时间的Ticks属性
  7. 03 Spring框架 bean的属性以及bean前处理和bean后处理
  8. Apache NiFi 开发 安装说明
  9. 028_MapReduce中的计数器Counter的使用
  10. centos6.8 修改yum安装镜像源