phalcon:整合官方多模块功能,方便多表查询
2024-08-25 16:23:39
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;
}
} }
最新文章
- 享元模式(Flyweight Pattern)
- js面向对象笔记
- 如何去掉底部的织梦版权信息powered by dedecms
- Java 并发性和多线程
- YAML初探
- Android编程: Activity生命周期和LogCat使用
- PhpExcel数组输出到Excel浏览器下载
- UI/UE对个性化推荐的影响
- [Ember] Creating Your First Ember.js Project with Ember-CLI
- IntelliJ IDEA 14 注册码生成java代码(转)
- sqlserver 注释提取工具
- C++ protected访问权限思考
- 201521123035《Java程序设计》第一周学习总结
- Cleaner, more elegant, and wrong(翻译)
- Android的SeekBar和RateBar的使用-android学习之旅(三十二)
- linux卸载erlang
- jquery+jquery.rotate实现图片旋转效果
- android:layout_margin真实含义 及 自己定义复合控件 layout()运行无效的问题解决
- CF1129C Morse Code
- 转【面向代码】学习 Deep Learning(二)Deep Belief Nets(DBNs)
热门文章
- redis add 'vm.overcommit_memory = 1' to /etc/sysctl.conf
- linux环境配置nginx导致页面不刷新
- Python电影投票系统
- KGX滚动分页源码
- C#加快Bitmap的访问速度
- C#中时间的Ticks属性
- 03 Spring框架 bean的属性以及bean前处理和bean后处理
- Apache NiFi 开发 安装说明
- 028_MapReduce中的计数器Counter的使用
- centos6.8 修改yum安装镜像源