保持PHP脚本与UI分离

时间:2010-04-10 08:20:46

标签: php templates

我有php脚本,可以执行注册,登录,上传等操作。 我想将HTML保存在一个单独的文件中,这样我就可以创建一个桌面客户端,我可以使用php文件来登录注册等。

基本上要说一个前端,HTML或桌面客户端然后只有一个后端,php。

这可能吗?

编辑:ASP.net会更适合这个吗?

6 个答案:

答案 0 :(得分:6)

不要只是跳上框架的潮流。 PHP的创建者自己提倡采用无框架方法来处理这种分离问题。请参阅:http://toys.lerdorf.com/archives/38-The-no-framework-PHP-MVC-framework.html

一般框架的问题是它们不必要且缓慢。如果你专注于一个单独的域,如CMS和使用drupal或其他东西,但是对一般框架保持警惕,那就没问题了。特别担心Smarty的无用(见:http://codeangel.org/articles/simple-php-template-engine.html

在你离开我之前,请记住我不是反Kohana,ZF等。他们仍然有他们的用途。但是,由于人们倾向于只是告诉人们直接使用框架,我认为我会提供不同的观点。

答案 1 :(得分:3)

PHP本身就是一个模板,很长时间以来一直在讨论像Smarty这样无用的东西https://stackoverflow.com/questions/630714/smarty-the-best-choice这是一个组织代码的纯粹问题而不是“模板引擎”MVC是一个很好的方向。

如果您计划使用桌面客户​​端或类似的东西,我认为您的方向也是创建API - http://www.gen-x-design.com/archives/create-a-rest-api-with-php/

答案 2 :(得分:1)

为什么不呢? 只需将您的每个应用程序分为两部分 - 数据准备和数据显示。

说,您的数据准备部分(也称为“业务逻辑”)可能看起来像

<?
include 'config.php';
$data=db_query("SELECT * FROM data",3);
display($data,"users_list.tpl");
?>

请注意display()功能。它是负责数据输出的功能。它可以呈现HTML和JSON,具体取决于目标。 它的代码可能看起来像

<?
if ($destination == 'desktop') echo json_encode($data);
else include $template;
?>

和users_list.tpl可能看起来像

<a href="?id=0">Add item</a>
<? foreach ($data as $row): ?>
<li><a href="?id=<?=$row['id']?>"><?=$row['name']?></a>
<? endforeach ?>

很简单。只需避免业务逻辑代码中的echo $row['name'];内容。

答案 3 :(得分:0)

您可以选择模型 - 视图 - 控制器设计模式。在此处查看有关它的更多信息:

http://en.wikipedia.org/wiki/Model%E2%80%93view%E2%80%93controller

这是关于phpro.org的一个很好的教程:

http://www.phpro.org/tutorials/Model-View-Controller-MVC.html

话说回到 MVC 是一个相当高级的话题,你必须擅长 OOP 。另一件事可能是使用 Smarty template engine ,但你必须学习如何使用它。

<强> Also, not to forget about top 10 MVC PHP frameworks you can use.

我个人建议您使用 CodeIgniter ,它比其他同行更容易,更快捷。或者你可能想要 Kohana ,据说是CodeIgniter的扩展版本。

答案 4 :(得分:0)

是的,这可以通过MVC(模型 - 视图 - 控制器)等设计范例实现。我建议调查CodeIgniter,Kohana,CakePHP或Symfony等框架。我听说CodeIgniter对于初学者来说是最容易学习的。

答案 5 :(得分:0)

agiletoolkit是一个轻量级的框架,可以很好地实现MVC,作为奖励,还可以轻松地集成到前端的Jquery UI中,因此您可以非常轻松地创建具有CRUD访问数据库的外观漂亮的网站。

正如其他人所提到的,如果你的方法受到纪律处分,你可以在普通的PHP中自己做,但是 - 纪律并不容易,特别是在有最后期限要满足时。

我不能评论其他框架,因为我没有使用它们,但作为非Web开发领域的经验丰富的程序员,我更喜欢agiletoolkit与编码原始php的方法。我不想重新发明很多东西,如安全性,ajax等。 - 我只想继续开发我的应用程序并在开发结束时轻松维护代码。

如果那也是您正在查找的内容,请查看此php framework with jquery integration