武侠小说里常写,无招胜有招.大师们最终都要精通十八门武艺,然后最后学通一门,再融会贯通,突破前人,练就一招独门绝技.
我曾经折腾着要自己整文本数据库系统,自己整模板系统,自己整MVC框架.自己封装一堆操作,乐此不疲.
有一天我仔细地研究了Smarty模板的机制,突然良心发现,把我自己折腾的模板系统扔了.因为我发现,模板引擎的引入,初衷是简化表现层的操作,但最终 Smarty的语法,已经越来越像一个php,越来越像一个新的WEB脚本了.本来是两层,php引擎解释PHP文件,现在多了一层,php引擎解释 smarty引擎,smarty引擎又解释smarty模板.现在smarty的语法还在不断增加,扩展,他们正在努力在php语言的圣殿下,用 smarty造一个小房子.
于是我在做某个网站的两会专题时,文件架构是这样的:
/view.php
/model.php
/index.php
/config.php
view.php文件的第一行就声明了:global
$data;$data是一个多维数组,它的内容已经由index.php来产生.view.php中除开这一句之外,就只包含echo语句和foreach语句了.它们就负责一行行地输出data数组的内容。
index.php则是入口文件,它包含了config.php,model.php
,view.php.虽然不长,我还是给它实现了一个缓存功能.就是如果writable/cache.php文件存在且创建时间在10分钟以内,就直接包含cache.php并退出,否则调用wget将最新的网站显示内容读一份存到writable/cache.php中存起来.index.php是主要的执行文件.
config.php 则是几行配置信息,比如数据库信息啦之类.
model.php则是定义的函数的声明。其实这里也就三个函数.
现在我的工作完成了,余下的工作,就是告诉美工,要改的话,只需要修改view.php文件就行了.这个文件,随便改一下也没啥问题.
所谓的MVC,其实归根结底,就是可以做到如此简单.
所以,为什么要用smarty呢.如果要将logic和view分开,很简单,把文件一分为二,其中一个只管显示就行了。如果非要用if else 或是foreach,在smarty中也是要用的,我干吗要再去学smarty的关于if else 和foreach的语法呢,我直接在view.php中使用php标签就行了.
学透了以后,太多东西其实都可以这样来解决.cookie被认为是不安全的,所以往往一些系统设计了非常复杂的SESSION机制,还写大段大段的代码自行设计了加密算法.首先,加密算法有现成的可用的,没必要自己搞定.再者,看看wordpress,人家也直接在cookie存了用户名和密码.但普通人如果要在cookie中存,往往就存用户名和md5后的密码.但wordpress不这么干,人家把密码md5加密了一次,再用md5加密了一次.你不是说用户可能设置少于6位的密码吗?你不是说少于6位的密码几分钟就可以暴力破解吗?我现在两次md5加密.不就成千上万倍地增加了破解难度了吗?多简单的做法!
类.我不得不说一下这个.不知道为什么,人们在学会php5下的类操作后,就觉得不管什么,哪怕是写一个文件什么的,一定要封装一下.需知,OOP不是仙药,(原话应该人月神话中的:没有银弹.),OOP仍然不能解决一切,甚至不见得比Function式的编辑解决得更好.如果您决定了要写一堆 Class,那么事先告诉我,您保证您写成Class的初衷不是为了好看,不是为了让老板知道您会用class了.
还有一些仁兄们,喜欢把程序弄得非常好看,优雅.当然如果可能,好看一点的代码谁都喜欢.但是有很多时候,好看是以数倍的性能牺牲为代价的.我在一个短短的php文件中,看到有十个以上的地方使用了eval($variable)类似的语句.(之前看到霍炬的文章我不信,后来见到这份文件我信了).我能想出来的本来可以直接运行的代码非要放进eval中去执行的理由只有:可能这样好看一些.兄弟,如果您对好看与非很在乎的话,我建议您真的应该与您的美工换一换,这样也许能做出来一个很好看的网站!
有些东西,真不是越复杂越好.把php弄精,两点:多看手册,多问baidu/Google(为了避免卷入google还是baidu之争,我特意两个都写上,并在注意了排序).有时间骂Zend framework太庞杂,Xoops太老套,不如坐下来看看php手册.
分享到:
相关推荐
控制端224K,返朴归真的界面,生成的服务端无壳,156K,可多次重复安装,重复安装要等2秒,要退出守护线程 其它细节方面的功能大家自己去发现吧 功能: 文件管理 完全仿Radmin所写, 文件、文件夹批量上传、删除、下载...
控制端与服务端都采用IOCP模型,数据传输采用zlib压缩方式 稳定快速,上线数量无上限,可同时控制上万台主机 ...控制端224K,返朴归真的界面,生成的服务端无壳,156K,可多次重复安装,重复安装要等2秒,要退出守护线程
难点在于引导学生深入体会作者的情感,理解“返朴归真”的含义,即回归自然、远离尘世的淳朴状态。 【教学流程】 1. 课程引入,通过查字典理解“野”字的含义,并在文中探讨其特殊意义。 2. 介绍张家界的基本情况...
道家人生哲学则强调境界、图个体自由放达的理想主义人生观,追求精神境界和自由放达,提倡“无为而治,莫与人争,少私寡欲,洁身自好,返朴归真”的思想。 法家人生哲学是急功近利、追逐权势的实用主义人生观,认为...
活动提出了两个主要主题:一是“语文课更应返朴归真”,二是“享受朗读,培养语感”。 在“语文课更应返朴归真”的讨论中,教师们关注的是在过于强调人文性的教育环境中,如何让学生真正理解和欣赏文本。他们提出,...
在研读环节,学生将分组对课文的各个部分进行分析,如山的惊险美、水的灵动美、野物的“野”性十足以及游人的“返朴归真”。例如,对于“山是野的”,教师会引导学生关注“拔地而起”、“摇摇晃晃”等词语,感受山的...
而《诗经》中的纯朴与自然,如“返朴归真”,则让我们反思现代生活的浮躁,重拾对自然的敬畏和对生活的感恩。 总的来说,《诗经》是一部包罗万象的文学巨著,它以其深邃的内涵和艺术魅力,对我们的人生观、价值观...
- **野物与游人的野**:分析“返朴归真”的含义,理解人与自然和谐相处的意境。 - **朗读积累**:学生选择喜欢的部分进行朗读练习,积累优美句子,加深对课文情感的理解。 - **拓展延伸**:讨论不同人对索溪峪的...
2. **自然与环保**:“雄发陶瓷——追求卓越 返朴归真”,“双钱陶瓷——返朴归真 融于自然”等广告语体现了对自然的崇尚和对环保的重视,强调产品与自然环境的和谐共生。 3. **艺术与审美**:很多品牌如“恒达陶瓷...
比如,Givenchy的设计以其优雅、简洁的风格,完美地诠释了犬儒主义的返朴归真,体现出自然与美的融合。 总的来说,哲学思想为服装设计带来了更深层次的意义,它不仅关乎外在的美学,更是对内心世界和生活态度的反映...
首次活动的主题是“语文课更应返朴归真”。活动中,教师们反思了当前语文教学中存在的问题,比如过分追求课堂的“人文性”和“精彩度”,导致忽视了文本的深入解读和语言的实际运用。他们提出了解决方案,强调教学...
在全文的再读过程中,教师鼓励学生带着情感朗读,深化对索溪峪“野”之美的感受,并摘抄或背诵自己喜欢的段落,以增强语言积累和审美体验。 总之,这篇教案注重以学生的主体性为出发点,通过探究式学习,使学生在...
控制端237K,返朴归真的界面,生成的服务端无壳,111 K,可安装多个服务端 功能: 文件管理 完全仿Radmin所写, 文件、文件夹批量上传、删除、下载、创建、重命名 屏幕监视 此模块全用汇编编写,传输速度快,控制屏幕...
控制端279K,返朴归真的界面,生成的服务端无壳,106 K,EXE内的资源用UPX压缩, 可安装多个服务端 其它细节方面的功能大家自己去发现吧 功能: 文件管理 完全仿Radmin所写, 文件、文件夹批量上传、删除、下载、创建...