php的控制器,php-模块与控制器

我正在为一个PHP框架(不是,另一个)编写点点滴滴,作为学习的经验,希望将来可用于较小的项目.

我已经读了很多书,即现有框架的参考文档.我看到模块一词泛滥成灾,根据我的阅读和以前的经验,模块是一个概念,用于划分相关代码(视图,控制器,模型等).

我很好奇,在这种情况下如何看待模块? (上下文是MVC Web应用程序体系结构或类似的应用程序开发模式)

我正在尝试确定如何最好地应用它,因为(我认为)它适合我当前的困境.对于音乐网站,模块将被视为艺术家,制作人等,而控制器将被视为个人资料,媒体等.这当然会留下诸如查看或编辑之类的动作.

这一切似乎都很好,因为现在我可以像这样进行路由了:

'Artist/Profile/View/{ALIAS}'

+- Module : Artist

+- Controller : Profile

+- Action : View

//this may be accessed via music.com/artist/{alias}

//defaulting the Controller and Action

..但是我试图弄清楚模块概念在这里如何适合,特别是我如何组织或修改控制器以适应.

这就是我正在考虑的文件系统布局.

+- Root

+- 'index.php'

+- 'api.php'

+- Modules

| +- Public

| | +- Controllers

| | +- Views

| |

| +- User

| | +- Controllers

| | +- Views

| |

| +- Artist

| | +- Controllers

| | +- Views

| |

| +- Producer

| | +- Controllers

| | +- Views

| |

| +- Venue

| | +- Controllers

| | +- Views

| |

| +- Administrator

| +- Controllers

| +- Views

|

+- Models

+- Config

+- ...

解决方法:

在大多数框架中,模块(在CakePHP中称为Plugins)几乎都是微型应用程序.它们内部有自己的MVC结构,通常是独立的,也许仅依靠主应用程序模型来保持代码可重用.

我们在工作的地方使用Zend,而模块的示例就是

>管理员模块,站点管理员可以对系统进行更改.

>网站一般前端的Web模块

>用于已登录用户的用户模块,这些用户具有其他管理工具来执行站点上的活动

基本上所有这些都属于同一个站点/系统,但是大多以不重叠的方式进行.

标签:module,model-view-controller,php,routing

来源: https://codeday.me/bug/20191208/2093145.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/563277.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

mysql5.7 glibcxx_3.4.15_CentOS6.5 缺少 libstdc++.so.6(GLIBCXX_3.4.15)

libstdc-4.8.2-16.el7 下载地址:[rootlocalhost kindit]#[rootlocalhost kindit]# rpm -qa | grep libstdclibstdc-4.4.7-4.el6.i686[rootlocalhost kindit]#[rootlocalhost kindit]#[rootlocalhost kindit]# cd /home/kindit/Packages/packages-centos7[rootlocalh…

php文件夹下所有视频播放,PHP使用glob方法遍历文件夹下所有文件

遍历文件夹下所有文件,一般可以使用opendir 与 readdir 方法来遍历。代码:$path dirname(__FILE__); // __FILE__文件的完整路径和文件名。// echo __FILE__; // F:\wamp\www\php20190214\index.php// echo $path; // F:\wamp\www\php20190214$result …

python模拟浏览器请求的库_基于Python模拟浏览器发送http请求

1.使用 urllib2 实现#! /usr/bin/env python# -*- codingutf-8 -*-import urllib2url"https://www.baidu.com"req_header {"User-Agent":"Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.64 Safari/537.11&…

owncloud8 php,owncloud-8.2.3

安装依赖Red Hat Enterprise Linux and CentOS 6 still ship with PHP 5.3. ownCloud requires PHP 5.4 or better. There areseveral third-party repositories that supply PHP 5.4, but you must use the Software Collections (SCL) repository to bein compliance with yo…

影响mysql导入效率的参数_extended-insert对mysqldump及导入性能的影响

参数说明:-e, --extended-insert,长INSERT,多row在一起批量INSERT,提高导入效率,和没有开启 -e 的备份导入耗时至少相差3、4倍,默认开启;用--extended-insertfalse关闭。强烈建议开启&#xff0…

mysql数据库表的类型介绍,mysql数据库表的类型介绍

前言之前我们讲了下载安装数据库,还有如何卸载(虽然直接重装系统就好)那么现在让我们来讲讲"""1、数据库与表的剩余操作编码配置、引擎介绍2、数据库字段的操作3、数据库的数据类型4、数据库字段的约束条件"""数据库的配置通过配置文…

mysql 分表后排序_MySQL优化分库分表,为什么要分表,分表以后如何进行排序查询,业务如何设计?...

昨天面试新人的时候,遇到了这么一个问题,按照自己的想法大体聊了一些,但大多是感性的,并没有完整的了解why and how.今天查了一些相关的资料,包括《MySQL性能调优与架构设计》、《高性能Mysql》,慢慢的整体…

php7 提示500错误解决,升级php7出现500错误怎么办

升级php7出现500错误怎么办发布时间:2020-08-24 10:40:45来源:亿速云阅读:69作者:小新小编给大家分享一下升级php7出现500错误怎么办,希望大家阅读完这篇文章后大所收获,下面让我们一起去探讨吧&#xff01…

oracle 怎么 制造崩溃,oracle数据库崩溃

通过幸存oracle文件修复oracle9i数据问:我没有备分oralce,也没有导出数据库,现在操作系统崩溃了,但是oracle目录下的文件很完整,请问如何修复我的表?答:建一个相同的数据库(磁盘目录相同,否则要改init文件&…

flume-ng 入 oracle,flume-ng-sql-source

支持oracleflume-ng-sql-sourceThis project is used for flume-ng to communicate with sql databasesCurrent sql database engines supportedAfter the last update the code has been integrated with hibernate, so all databases supported by this technology should wo…

php 500 yii,yii2.0出现500错误怎么办

1、首先开启web/index.php defined(YII_DEBUG) or define(YII_DEBUG, true); 将此改为true;看下报错的问题:Exception (Invalid Configuration) yii\base\InvalidConfigException with message The directory is notwritable by the Web process: /home/…

监控视图 oracle,Oracle“并行执行”之四——监控视图

摘自《VLDB and Partitioning Guide》1、视图介绍V$PX_BUFFER_ADVICE提供所有并行查询的BUFFER的历史使用情况,以及相关的建议规划。对于并行执行过程中的内存不足等问题,可以查询这个视图以便能够重新配置一下SGA。V$PX_SESSION提供关于并行进程会话、服…

受迫阻尼 matlab 仿真,MATLAB系统仿真报告——有阻尼受迫振动系统

一、 问题描述有阻尼受迫振动的结构及基本原理图一 有阻尼的受迫振动系统图1为有阻尼的受迫振动系统,质量为M,摩擦系数为B, 弹簧倔强系数为K。拉力、摩擦力和弹簧力三都影响质量为M的物体的加速度。如果系统的能量守恒,且振动一旦…

oracle acfs snap 恢复,删除ACFS系统碰到的问题

首先尝试UMOUNT文件系统:[oraclexsh-server1 ~]$ df -kFilesystem 1K-blocks Used Available Use% Mounted on/dev/mapper/VolGroup00-LogVol00 435653856 192338280 220828536 47% //dev/sda1 101086 16919 78948 18% /boottmpfs 65968984 195784 65773200 1% /dev…

php 数组 定义 遍历,php针对数组的定义、遍历及删除

本篇文章主要介绍php针对数组的定义、遍历及删除,感兴趣的朋友参考下,希望对大家有所帮助。本文实例讲述了php实现搜索一维数组元素并删除二维数组对应元素的方法,具体如下:定义一个一维数组一个二维数组如下$fruitarray(apple,or…

Linux怎么对文件内容trim,Linux平台下SSD的TRIM指令的最佳使用方式(不区别对待NVMe)...

SSD写数据会出现什么问题SSD读写的单位不是位,而是一个块。如果要改变这个块中的一位,首先要将整个块擦写成1,然后再写入更新的数据。为了解决擦写块的低效,SSD的策略是将需要改写的块,读取出来,进行数据修…

linux+目录+配额,Linux磁盘配额管理

最近在做基于mesosmarathon 的docker 容器云服务项目。需要限制每个容器的数据卷磁盘使用,对此作了一些调研工作。基本说明必要条件XFS ext4 均可支持Quota 操作需要内核Linux 2.4 的支持需mount时指定quota option, 可配置 /etc/fstab 后remount.有 3 种不同的配额…

linux进程运行队列,Linux进程调度中队列的使用

Linux内核中大量使用了队列,这里仅列举它在进程调度中的几处应用。Linux内核中的队列是以双链表的形式连接起来的,include/linux/list.h中定义了队列并提供了一些接口,详细的介绍可以参考**[1]**中的附录。Linux中的进程有如下几个主要状态&a…

linux命令行如何上翻,Linux学习教程-获取可用命令行参数 or 文件上下翻转和左右翻转...

导读前面使用的,有几个用到了参数如ls -l, head -n 6等,需要注意的是跟参数之间要有空格。获取可用命令行参数终端运行man ls可以查看ls所有可用的参数,上下箭头翻页,按q退出查看。(man: manual, 手册)ctehbio:~/data$ man lsNAME…

制作 小 linux 教程,用BusyBox制作Linux最小系统

1、下载busybox-1.30.1 地址:https://busybox.net/downloads/busybox-1.30.1.tar.bz22、解压:tar xvf busybox-1.30.1.tar.bz23、安装交叉编译器4、安装libncurses5-dev:sudo apt-get install libncurses5-dev5、配置busybox:make…