PHP 板


LINE

看板 PHP  RSS
※ 引述《tkdmaf (皮皮快跑)》之铭言: : ※ 引述《tanson (Flash)》之铭言: : : 写成物件导向的方式如何,例如: : : class InputGenerator : : { : : static public function select($name, $value, $attr, $options) : : { : : $html = '<select name="' . $name . '">'; : : foreach($options as $key => $option) { : : $selected = ''; : : if ($value == $key) { : : $selected = 'selected'; : : } : : $html .= '<option value="' . $key . '" ' . $selected . '>'; : : $html .= $option; : : $html .= '</option>'; : : } : : $html .= '</select>'; : : return $html; : : } : : } : : 暂且略过$attr html属性设定的参数 : : 使用时只要 require class至页面,然後如以下方式 : : InputGenerator::select('name', '1', null, $enums); : : 便可产生所需的下拉选单 : : 不然就是使用framework : : 像是Zend Framework 的view helper : : 让页面也乾净许多 : : 且就不必常使用for回圈产生元素 : 你这个做法基本上只会造成其他写程式的人的困扰。 : 同时也带给美编或是网页人员设计上的困扰。 : 这次的主题来说最大的问题是在於所谓的「程式」和「页面」分离的问题。 : 在我的观念里,控制行为、资料库行为……等等的东西的确应该要和页面分离。 : 但所谓的程式并不是指你用上了「<?php」他就会是程式。 : 以本例必要的重覆html行为,事实上他表明了这是一个做为「连续显示」的行为。 : 这种情形之下所必要使用的for、foreach、while……等等回圈行为, : 他仍然只能算是「页面」的一部份。 : 因为他并不是在控制整个程式走向。 : 而仅仅就为了「输出」这件事。 : 要不然真的要讲到完全程式和HTML分离 : <td><?php echo $row['name']></td> : 这东西岂不就完全违规了? : 适当的view中放置符合於页面显示的php code,不仅仅对程式开发人员降低负担。 : 网页编辑人员也可以自由的去设计画面。 : 而不管是网页人员写好版面给程式设计师。 : 或是程式设计师先设计丑丑的表单再丢给网页设计人员去改。 : 都不会有什麽太大的问题。 : 但你包成class来做的话...... : 到底是在给谁难过? : 给我吗?不会。因为我会把他整个砍掉。 : framework一般的立意就在於MVC架构分离。 : 但是V就叫做VIEW,不叫做「HTML」。 : VIEW不代表他完全不包含任何PHP语法。 : VIEW只是告诉你不要拿来写程式流程,不要用来取资料库,不要用来做和「画面显示」 : 无关的行为。 : http://www.codeigniter.org.tw/user_guide/general/alternative_php.html : 连codeigniter都有提到关於变换句法的问题。 : 可以合理的理解他们将这几个php语法视为view的一部份的合理性。 : 不过ci的short tag处理法倒是蛮有趣的。(完全无视伺服器的设定) : (说穿了他不过就是把<?=$name?>在执行前换回<?php echo $name?>罢了) 撇除个人开发 一个团队在开发新的专案,开发时程是最重要的项目之一 使用物件产生下拉选单等input栏位,可以节省的是甚麽? 节省重复的code撰写,也就是节省了开发时间 把时间省下多去想流程规划、物件的设计不是更重要? 再来,如果一个网页设计师在维护view的时候, 可以看得懂for回圈产生的select,那为何Class产生出来的select会看不懂 你只要告诉他InputGeneroator::Select() 代表的是下拉选单,和难之有? 且copy一堆php产生的code容易,还是一行code容易且不容易出错? 更何况现今framework,以ZF为例,使用物件产生出的Input元素 更是百百种,难道您也要说ZF真是罪大恶极? 这样的产生方式会给人难过吗?我想答案是不会的 --



※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 210.242.161.16
1F:→ tkdmaf:节省开发是节省在HTML上真的怪怪的。 10/05 13:18
2F:→ tkdmaf:至於code会不会出错看你有没有做好单元测试了。 10/05 13:18
3F:→ tkdmaf:至於ZF的罪大恶极点……我想就是smarty吧! 10/05 13:19
4F:→ tkdmaf:快速的软体开发不是叫你去节省VIEW方面的东西OK? 10/05 13:19
5F:→ tkdmaf:说真的,如果我程式写好了,HTML的CODE的变动就给网页人员 10/05 13:20
6F:→ tkdmaf:去做。根本没有什麽开发速度的问题。 10/05 13:20
7F:→ tkdmaf:顺便告诉你,很多人在用的东西有时只是你不能改变他核心。 10/05 13:21
8F:→ tkdmaf:不代表他的思维一定是符合你的需求。 10/05 13:21
9F:→ tkdmaf:你要一直提ZF为例,我也可以一直提CI为例。 10/05 13:22
10F:→ tkdmaf:你说ZF是用InputGenetoatior::Select()为例的话 10/05 13:22
11F:→ tkdmaf:那CI就很简单的是:我根本就懒的提供。 10/05 13:24
12F:→ tkdmaf:CI最多就给你个set_select()就算客气的了。 10/05 13:24
13F:→ tkdmaf:其他像有form_input()、form_textarea()....等等 10/05 13:25
14F:推 LaPass:简单来讲.... 思维不同.... M$ 的一个asp框架我记得也是提 10/05 13:27
15F:→ LaPass:供InputGenetoatior::Select()之类的东西去写。在写网页的 10/05 13:28
16F:→ LaPass:过程中,根本不会写到HTML、CSS 10/05 13:28
17F:→ tkdmaf:可那就变成写死的东西了。要改的话真的很~~~~~~~~~~ 10/05 13:30
18F:→ LaPass:GOOGLE也推出个GWT,可以在SEVER端完全用JAVA去写,而不用 10/05 13:30
19F:→ LaPass:写javascript,变成直接用java写JAVA之类的功能 10/05 13:31
20F:→ LaPass:还是要看使用者啦..... 10/05 13:31
21F:→ LaPass: ajax 才对 打错 = = 10/05 13:33
22F:→ tkdmaf:我是觉得说,开发这件事真的不是自己爽就好的。 10/05 13:33
23F:→ tkdmaf:如果开发网页,我还得去「教育」网页人员~~~~~~ 10/05 13:34
24F:→ tkdmaf:或是我得把我的功能告诉他们怎麽用怎麽放。 10/05 13:34
25F:→ tkdmaf:甚至要很紧张的告诉他们:那个千万别动。 10/05 13:34
26F:→ tkdmaf:对自己有什麽好处? 10/05 13:34
27F:→ tkdmaf:我常常都跟我公司的网页人员说一句话: 10/05 13:35
28F:→ tkdmaf:我做的东西你就尽量改,改坏了也没差,反正我主程式不会有 10/05 13:35
29F:→ tkdmaf:问题。 10/05 13:35
30F:→ tkdmaf:因为我让他们就是使用基本技术规范的东西就好了。 10/05 13:35
31F:→ tkdmaf:其他程式面的问题我自然有其他的处理办法。 10/05 13:36
32F:推 LaPass:嗯~ 思维不同~ 10/05 13:39
33F:→ tkdmaf:是的。思维不同~ 10/05 13:48
34F:推 shadowjohn:同意tkdmaf说的,我也是不怕美工改~主程式不会有问题 10/05 21:24







like.gif 您可能会有兴趣的文章
icon.png[问题/行为] 猫晚上进房间会不会有憋尿问题
icon.pngRe: [闲聊] 选了错误的女孩成为魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一张
icon.png[心得] EMS高领长版毛衣.墨小楼MC1002
icon.png[分享] 丹龙隔热纸GE55+33+22
icon.png[问题] 清洗洗衣机
icon.png[寻物] 窗台下的空间
icon.png[闲聊] 双极の女神1 木魔爵
icon.png[售车] 新竹 1997 march 1297cc 白色 四门
icon.png[讨论] 能从照片感受到摄影者心情吗
icon.png[狂贺] 贺贺贺贺 贺!岛村卯月!总选举NO.1
icon.png[难过] 羡慕白皮肤的女生
icon.png阅读文章
icon.png[黑特]
icon.png[问题] SBK S1安装於安全帽位置
icon.png[分享] 旧woo100绝版开箱!!
icon.pngRe: [无言] 关於小包卫生纸
icon.png[开箱] E5-2683V3 RX480Strix 快睿C1 简单测试
icon.png[心得] 苍の海贼龙 地狱 执行者16PT
icon.png[售车] 1999年Virage iO 1.8EXi
icon.png[心得] 挑战33 LV10 狮子座pt solo
icon.png[闲聊] 手把手教你不被桶之新手主购教学
icon.png[分享] Civic Type R 量产版官方照无预警流出
icon.png[售车] Golf 4 2.0 银色 自排
icon.png[出售] Graco提篮汽座(有底座)2000元诚可议
icon.png[问题] 请问补牙材质掉了还能再补吗?(台中半年内
icon.png[问题] 44th 单曲 生写竟然都给重复的啊啊!
icon.png[心得] 华南红卡/icash 核卡
icon.png[问题] 拔牙矫正这样正常吗
icon.png[赠送] 老莫高业 初业 102年版
icon.png[情报] 三大行动支付 本季掀战火
icon.png[宝宝] 博客来Amos水蜡笔5/1特价五折
icon.pngRe: [心得] 新鲜人一些面试分享
icon.png[心得] 苍の海贼龙 地狱 麒麟25PT
icon.pngRe: [闲聊] (君の名は。雷慎入) 君名二创漫画翻译
icon.pngRe: [闲聊] OGN中场影片:失踪人口局 (英文字幕)
icon.png[问题] 台湾大哥大4G讯号差
icon.png[出售] [全国]全新千寻侘草LED灯, 水草

请输入看板名称,例如:BuyTogether站内搜寻

TOP