社区
Framework
帖子详情
Zend Framework 模块(module)问题
isaac0702
2011-09-02 05:18:55
如果将前后台视作一个应用的不同部分,假设前台:www.web.com/qiantai 后台:www.web.com/houtai
当我要用到身份验证(Auth)、访问控制(Acl)和导航(Navigation)的时候就很别扭。因为网站前后台还是有很大区别的。比如导航,前台就是首页,文章等等的,后台是文章增删改查等,完全是两码事,但是我找不到能把他们分开设置的办法。
那位有朋友也有这样的考虑的可以指教一下
...全文
284
6
打赏
收藏
Zend Framework 模块(module)问题
如果将前后台视作一个应用的不同部分,假设前台:www.web.com/qiantai 后台:www.web.com/houtai 当我要用到身份验证(Auth)、访问控制(Acl)和导航(Navigation)的时候就很别扭。因为网站前后台还是有很大区别的。比如导航,前台就是首页,文章等等的,后台是文章增删改查等,完全是两码事,但是我找不到能把他们分开设置的办法。 那位有朋友也有这样的考虑的可以指教一下
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
6 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
jueljust
2012-02-24
打赏
举报
回复
策略模式最适合啦
把权限策略和视图策略单独提出来
动态指定就行
fsk_wyf
2011-09-27
打赏
举报
回复
15 .. : 初始化配置文件 g_pstSdrDisList = CCU_CreateList(CCU_DOUBLE_LIST) 151
UINT32 InitCfg(VOID){151;
if (52 == g_pstSdrDisList){91, "CCU_Createg_pstSdrDisList the ret");
222;}/* 单板禁能传感器初始化函数 */
ConfigDisableSdrInit();/* 系统信息初始化函数 */
(VOID)InitSysParams();151;if (52 == g_pstCfgList)
{91, "CCU_CreateList the ret");222;}/* 创建GDC配置文件链表 */同上;
/* 初始化部件列表 */(VOID)ConfigListInit((UINT8 *)CONFIG_LIST_FILE);
/* ..GDC链表配置文件 */(VOID)ConfigGDCListInit((UINT8 *)CONFIG_GDC_LIST_FILE, GDC_LIST);
/* 次信号量支持递归 */if ( CCU_OK != ADA_CreateMutex(g_pstConfigSemMutexId) )
{91, "creat syn tab mutex sem fail");222;} 221;}
16 功能描述 : CCU Agent程序 PrintInitinfo((UINT8*) 161
Initialize Config 163 Initialize CCU Service 164 Initialize RS485 Communication 165
Initialize PNP Module 166 Initialize Manger 167 Initialize DownLoad485 168
Initialize UDP Server 169 Initialize CLI Server 170
INT32 CCU_Agent(VOID) PrintInitResult(ulRet) 162
{UINT32 ulRet = CCU_ERR;CCU_ShowVersion();
/* 平台启动及配置版本等启动打印信息 */
161"163", (UINT8)CCU_StrLen("163"));ulRet = InitCfg();162;
109, "163 ret[%#lx]", ulRet);/*创建告警节点信号量*/ALM_InitAlarmModule();
/* 机柜电子标签处理初始化 */InitFileDeal();CMD_Init();
/* 创建CCU自身服务线程 */161"164", (UINT8)CCU_StrLen("164"));ulRet = InitCCUBoard();
162;109, "164 ret[%#lx]", ulRet);/* 初始化SOL模块 */SOL_INIT();
/* 底层驱动初始化 */161"165", (UINT8)CCU_StrLen("165"));ulRet = Init485Comm();162;
109, "165 ret[%#lx]", ulRet);/* 系统配置初始化 */InitMsgTimeRad();
/* 初始化PnP模块 */161"166", (UINT8)CCU_StrLen("166"));
ulRet = PNP_InitPnPModule();162;109, "166 ret[%#lx]", ulRet);InitCCURegProcess();
/* 初始化部件管理模块 */161"167", (UINT8)CCU_StrLen("167"));
ulRet = InitManger();162;109, "167 ret[%#lx]", ulRet);
/* 初始化消息模块 */InitMsgDeal();
/* 初始化加载模块 */161"168", (UINT8)CCU_StrLen("168"));
ulRet = DownLoad485Init();162;109, "168 ret[%#lx]", ulRet);
/*初始化节能管理模块*/CCU_InitPowerManger();
/* 启动软件定时器 */InitTimer();
InitCCUSdrAlarmNode();ConfigFileInit();161"169", (UINT8)CCU_StrLen("169"));
ulRet = UDP_InitSocketThread();162;109, "169 ret[%#lx]", ulRet);
/* 创建Socket服务端线程 */161"170", (UINT8)CCU_StrLen("170"));
ulRet = InitSocketServer();162;109, "170 ret[%#lx]", ulRet);
/*创建CPU及内存的监控告警线程*/InitCpuMemWarn();
/*初始化CCU板上传感器扫描线程*/InitBoardSensor();
/* 初始化风扇联动模块 */SmokeFanLinkageInit();221;}
fsk_wyf
2011-09-27
打赏
举报
回复
{UINT32 ulRet = CCU_NULL_LONG;ulRet = CheckPidByFile(FILE_PID_PATH);
if(711 == ulRet){31("SelfCheckProc error, invalid parameter.\n");61;}
if(CCU_OK == ulRet){221;}31("ccu agent is already running.\n");61;}
9 .. : CPLD自检及恢复 DBGPRINT(LP_ERR, g_ucMainPrtMat 91
VOID CpldCheckProc(VOID) CCU_LOCAL_CPLD_PATH 98 CCU_LOCAL_CPLD_BAK_PATH 99
{/*CPLD自检失败处理*/if(CPLD_TEST_FAIL == ADP_CPLDSelfTest())
{/*cpld自检失败置标志 需要在恢复后复位网口*/
g_ucCpldTestFail = CCU_TRUE;91, "CPLD test fail, start to recover");
/* CPLD自检失败,写日志 */
CCU_LogWrite(CCU_LOG_TYPE_SYSTEM, CCU_LOG_LEVEL_ERROR, "CCU local cpld self test fail");
/*先看备份的cpld-bak是否可以加载*/if(CCU_OK != JTAG_Local_CPLD((CHAR*)99)){
/*备份的不能启动加载,则看看是否存在cpld文件*/(VOID)JTAG_Local_CPLD((CHAR*)98);
}}else{/*把cpld.bin更名为cpld-bak.bin保存*/
if(CCU_OK == CCU_TestFileExist((CHAR*)98)){(VOID)FileReName((CHAR*)98, 99);}}}
10 .. : CCU单板自检 g_usCCUSelfStatus 101
VOID BoardSelfCheckProc(VOID){/*正常:0; 异常:1*/
/*检测CPU自检: 程序正常执行默认此项自检OK*/101 &= 0x7FFF;/*检测CPLD自检*/
if(CPLD_TEST_OK == ADP_CPLDSelfTest()){/*CPLD自检失败,将其对应的标志位置位*/
101 &= 0xBFFF;}/*初始化其他测试项的自检结果*/101 &= 0xC000;}
12 .. : 系统定时期线程 Monitor_AddThreadCounter 121 ulTimerCount 122
VOID *TimerThread(VOID *pPram)
{/* 定时器计数器(10ms一个周期,每次累加1) */
UINT32 122 = 0;SendTimerMsg(TIMER_CMD_BROADCAST);
for ( ; ; ){/* 累加到一定值将计数器清零,避免计数器溢出 */
if ( 122 >= TIMER_CNT_RESET_CYCLE )
{122 = 0;}122++;/* 产生定时消息 */TimerMsgGenerator(122);
/* 延时20ms再运行本任务, 这个值是实测的值,在板子上需要验证修改
减少轮询的时间粒度是为了优化轮询效率 */
ADA_Sleep(20);
if (0 == (122 % TIMER_FEED_DOG_COUNT)){121(TMR_TIMER_THREAD);}}}
13 .. : 初始化CCU软件定时器, 定时产生驱动消息
UINT32 InitTimer(VOID) THREAD_ERR_RN(iRet, (UINT32)iRet) 131
{INT iRet;pthread_t hTimerThread;/* 创建软件定时器线程 */
iRet = (INT)ADA_CreatThread((FUNC_ENTRY)TimerThread, 52, CCU_NORMAL_STACK_SIZE, &hTimerThread);131;
/* 定时器线程为核心线程,创建步成功, CCU运行标志不变 */g_ucCCURunFlag = CCU_TRUE;
iRet = (INT)Monitor_CreateThreadMonitorCB(TMR_TIMER_THREAD);131;221;}
14 .. : 创建Socket服务端线程
UINT32 InitSocketServer(VOID){INT iRet;pthread_t hSocketThread;
iRet = (INT32)ADA_CreatThread((..)StartSocketServer, 52, .., &hSocketThread);131;221;}
fsk_wyf
2011-09-27
打赏
举报
回复
4 fflush(stdout) 41 pucInfo 42 ucLen 43
VOID PrintInitinfo(UINT8 *42, UINT8 43)
{UINT8 i = 0;UINT8 ucLineLen = 57;
if((43 > ucLineLen) || (52 == 42)){return;}31("\r\n%s",42);
for(i = 0; i < ucLineLen - 43; i++){31("."); }41;return;}
5 VOID PrintInitResult(UINT32 ulRet)
{if(CCU_OK == ulRet){31("done");}else{31("fail");}41;return;}
6 .. : 初始化daemon exit(0) 61 exit(1) 62
VOID Daemon_init(VOID) pid > 0 63 pid < 0 64
{ INT iFd = 0; pid_t pid = -1;pid = fork();
if (63) {/* 是父进程,结束父进程 */61; }else if (64) {62;}
/* 是第一子进程,后台继续执行 */
/* 第一子进程成为新的会话组长和进程组长并与控制终端分离 */setsid();pid = fork();
if (63){ /* 是第一子进程,结束第一子进程 */61;} else if (64) {62;}
/* 是第二子进程,继续第二子进程不再是会话组长 */
/* 关闭打开的文件描述符 */for (iFd = 0; iFd < 3; iFd++){ close(iFd); }
/* 改变工作目录到/tmp */chdir("/tmp"); /* 重设文件创建掩模 */ umask(0);return;}
7 .. : 判断进程是否重复执行 CCU_485_ERR_INVALID_PARAMETER 711
UINT32 CheckPidByFile(CHAR* pFilePath)
{PFILE fp = 52;UINT8 ucCMD[128] = {0}; /*写文件的执行命令*/
CHAR *pFreadBuf = NULL;CHAR *pFree = NULL;INT iRet = 0;
INT temppid = 0; /*保存从文件读取的pid*/UINT uiPidNum = 1;UINT arPidList[1] = {0};
CHECK_PARA1_NULL_RN(pFilePath, 711)fp = CCU_FOpen(pFilePath, "r");
if (52 != fp){pFree = CCU_MemAlloc(CCU_MEM_INFO, CCU_MEM_PT_NO, 128);
if(NULL == pFree){printf("malloc mem fail[%s]", strerror(errno));42(fp);222;}pFreadBuf = pFree;
CCU_FRead(pFreadBuf, 1, 128, fp);42 ( fp );iRet = CCU_SScanf(pFreadBuf, "%d", &temppid);
CCU_MemFree(CCU_MEM_INFO, pFree);pFree = 52;pFreadBuf = 52;if(1 != iRet){222;}
if(temppid == getpid()){221;}else{/*检查进程表里是否有该进程*/arPidList[0] = (UINT)temppid;
if(-1 == HI_GetPidByName(CCU_AGENT_NAME, arPidList, &uiPidNum, CCU_TRUE)){
/*重写文件*/CCU_Snprintf((CHAR*)ucCMD, sizeof(ucCMD), "echo %d > %s", (INT)getpid(), pFilePath);
CCU_System((INT8*)ucCMD);221;}}222;}
else{/*文件不存在,需要重建*/同上, FILE_PID_PATH);同上;221;}}
8 .. : 启动主进程之前的系统自检 INT32 SelfCheckProc(VOID)
blackmanII
2011-09-19
打赏
举报
回复
可以建立不同的controller
rosehd
2011-09-02
打赏
举报
回复
刚刚申请了号
Zend
Framework
Module
之多
模块
配置
摘要:该文将为大家简单介绍一下如何使用
zend
framework
创建
模块
化的应用程序。
zend
framework
对多
模块
的支持是很好的,但是可能是由于功能太过强大的缘故,部署起来并不是很容易。许多人在使用过程中都会遇到这样 那样的
问题
,而且
zend
framework
现在已经到1.11版本了,网络上的很多资料都还停留在旧版本上,因此我在这里以当前的最新版本1.11为 例,来简单介绍一下如何...
探索
Zend
Framework
的基石:Skeleton
Module
深度解析与应用推荐
探索
Zend
Framework
的基石:Skeleton
Module
深度解析与应用推荐 在开发PHP应用的过程中,选择一个强大的框架至关重要。今天,我们聚焦于曾经在PHP社区中占有一席之地的经典——
Zend
Framework
,并且深入探讨其核心组件之一:
Zend
Framework
Skeleton
Module
。虽然这个项目已经宣布在2019年12月5日停止维护,但它的设计理念和技术架构依然...
php
zend
框架_
zend
framework
2
模块
系统(
module
)介绍,php
zend
框架使用方法|手册|用法
接下来我们来建立一个
模块
例子(在这里命名为System):首先,在你建立的
zend
framework
2的
模块
目录下面新建一个目录叫System ,打开System
模块
目录下面必须包含以下文件:src/System/Controller/ 存放控制器文件如:src/System/Controller/SystemController.php 建了一个名为System的控制器。namespace...
Zend
Framework
中如何在
Module
Bootstrap中取得View资源对象
在尝试
Zend
Framework
的
Module
Bootstrap时,视图获取View资源对象,但是使用类似下面的代码时, 产生错误: $this->bootstrap('view'); $view = $this->getResource('view'); 错误信息类似于这个帖子中提问者遇到的: A...
Zend
Framework
模块
创建
ZF的quickstart的案例不是
模块
化的,
Zend
网站也有关于
模块
化布局的说明,但是看了却不知道怎么用,然后摸索了好一陈,查了好多资料(现在中文网站对ZF方面的讨论比较少,而且基本上都是停留在1.9版本以前的,现在的版本有较大的调整,据说2.0会有更大的改动,国外对这方面的讨
Framework
4,250
社区成员
4,522
社区内容
发帖
与我相关
我的任务
Framework
国内外优秀PHP框架讨论学习
复制链接
扫一扫
分享
社区描述
国内外优秀PHP框架讨论学习
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章