模板文件中调用PHP文件

#1 chaobo_wu

因为我设置了多个入口文件,现在我需要在模板文件中加上指向入口文件的链接,我现在是从控制器里面传变量来实现的,但因为链接太多,都从控制文件里面传的话很麻烦,所以请问一下有没有更好的办法可以实现!谢谢,再个请问一下,这个框架里面如何加载smarty配置文件?

2010-05-17 22:15:17

#2 jake

这里先建议一下:使用多个入口文件,是应用程序规模较大的时候才会用到,比如说规模类似于站长网之类的中型门户,如果应用程序没有那么庞大的话,不建议用多个入口文件,单个入口文件已经足够了。一般判断的标准是一个入口最大有50个控制器(每个控制器有10个action左右)。所以在多个入口文件的那么大规模的应用门户中,每个入口文件基本上和一个频道相关,在很多大型网站的某个频道中,不会有太多其他频道的链接。

对于楼主的问题,这里有个方法,你可以自己建一个“网址生成”的函数,类似于spUrl,这个函数用于生成其他入口文件的链接即可,毕竟这些链接都是有规律可寻的。

另外,在控制器内,可以使用 $this->getView() 来获取到smarty的实例。

2010-05-18 08:56:07

#3 chaobo_wu

谢谢版主的答复,我现在的应用是这样的,我的后台有大栏目,每个大栏目下又对应着子栏目,如果只用一个入口文件控制整个后台的话,控制文件会非常多,而这些文件又只能在同一个文件夹中,所以比较混乱,我现在想把每个大栏目放在单独的文件夹中,一来利于扩展,二来利于维护,所以采用了多个入口文件,不知道这样做有何不妥?

2010-05-18 09:24:06

#4 jake

谢谢版主的答复,我现在的应用是这样的,我的后台有大栏目,每个大栏目下又对应着子栏目,如果只用一个入口 ...
chaobo_wu 发表于 2010-5-18 09:24
按你的说法,其实一个大栏目,即可是一个控制器,小栏目就是一个action。不需要弄的太复杂。还是那句话,单一个入口已经是一个中等规模的应用程序。相对于从前多文件的PHP程序架构(一个栏目是一个文件夹,栏目下一个页面是一个PHP),SPEEDPHP的程序架构是一个栏目一个控制器,一个页面是一个action。管理文件总比管理文件夹容易很多。

转换一下思维:如果从前你是几个文件夹(几个栏目)就分配给某个团队成员开发的做法,那么现在就可以是几个控制器分配给某成员。

2010-05-18 09:45:58

#5 jake

这里还是进一步说明是一下,控制器的结构和传统的PHP程序的一些区别:
1. 由于控制器这种结构是基于MVC的,所以,传统PHP程序中的大部分数据操作,都在M内实现,而V也实现了页面的显示和逻辑,所以在C内,也就是控制器本身,只专注于“交互”即可,代码并不多。
2. 传统PHP程序结构中,几乎可以说是一个PHP对应了一个HTML,这样的结构,虽然感觉上会更自由,但是从团队开发管理上来说,更无规范和无法管理。很多程序员都有过这样的经历:在数十个PHP文件中,某个PHP文件越写越大,函数、过程都杂乱地塞到里面来,到了后来要检查这个文件,又不知道从何找起。
3. 控制器的结构,还有个比较“现代”的好处,就是很配合现在的IDE编辑器,不仅可以通过IDE进行文件管理等,甚至在某些IDE中,还可以直接从UML图型变成PHP文件。
4. 控制器的写法,也是向JAVA等语言靠拢,它们那些语言,执行的流程都是放到类的方法内来统一管理的。

2010-05-18 09:57:43

#6 chaobo_wu

嗯,谢谢版主的提醒,我又考虑了一下,我这个系统也不是非常大,跟版主你说的样,没必要搞那么复杂,用一个控制器对应一个大栏目,每个大栏目下的所有控制操作都放入一个文件中,如果子栏目很多而且处理很复杂的话可以把model文件分开,由一个控制器调用多个model文件

2010-05-18 10:16:00

#7 chaobo_wu

只是原来在公司做系统的时候因为系统很大,所以把每个子栏目都做了规类

2010-05-18 10:17:23

#8 jake

嗯,谢谢版主的提醒,我又考虑了一下,我这个系统也不是非常大,跟版主你说的样,没必要搞那么复杂,用一个 ...
chaobo_wu 发表于 2010-5-18 10:16
这里使用model有个要诀:越能“重用”的代码,就越要放到model内,让多个控制器可以调用。这样在前期会很辛苦,但是后期会带来非常好的效果。
当然,如果是涉及到直接“用户交互”的操作,就不能直接放到model内,因为model主要负责的是业务逻辑和数据处理。

2010-05-18 10:21:52

#9 chaobo_wu

嗯,多谢版主指教,这个我知道,我原来用的框架跟你们的框架很相似,现在来支持中国自己的框架了,其实我一直都很佩服能做出开源框架的团队,你们真的很无私,很有朝气,愿speedphp变得越来越强大,我会一直支持你们的

2010-05-18 10:29:13

#10 jake

嗯,多谢版主指教,这个我知道,我原来用的框架跟你们的框架很相似,现在来支持中国自己的框架了,其实我一 ...
chaobo_wu 发表于 2010-5-18 10:29
谢谢支持,speedphp也会一贯地努力的:handshake

2010-05-18 11:03:58