在zend framework2里面,程序重新按照模块保存(在zf1的文档中,模块不是默认的设置)。
在application.config.php里面指定了程序有多少个模块:
这段配置里有两个模块,分别存放在module文件夹下的对应目录中,其中Application是默认模块,Album是作者添加的模块。
我们可以通过http://127.0.0.1/album来访问album模块,而直接输入http://127.0.0.1,则应该调用Application模块。之所以我们直接访问看到的仍然是album模块的内容,是因为application模块下的module.config.php设置了路由转发:
每个模块文件夹里都有一个Module.php文件,用于模块的基本配置,程序则放在src里面,包括controller、form和model,view视图则单列一个文件夹。还有一个文件夹是config,用于存放模块的配置文件。
细节的代码几乎全变了,但似乎确实比之前的zf1更加简练和易于理解。
AlbumForm.php是一个form表单:
在这里,添加一个表单元素用的是$this->add而不是之前的$this->addElement,方法的参数也全部使用简洁明了的函数定义,不需要注释就能看懂含义。
实例里有两个model,一个还是原来的table,albumTable.php,对照这个文件的代码,可以看到,数据库部分也大变样了,比如,原来的fetchAll和fetchOne等都没有了,取而代之的是select(),
1
|
$rowset
=
$this
->
select
(
array
(
'id'
=
>
$id
)
)
;
|
这行代码,取出了id值为$id的行,但是教程里并没有提到除了等于号以外的比较方式,例如大于或小于。
除此之外,添加,修改和删除方法,也才用了数组作为$where参数。
另一个model名为album.php,里面是几个对输入数据的操作,比如数据过滤filters,原来是集成在表单里的,现在被放到了这个model里面。似乎,对于我这样不那么喜欢form类的人来说,这也许意味着,我不需要为每个表单去新建form了。