【问题标题】:Keeping PHP script separate from UI将 PHP 脚本与 UI 分开
【发布时间】:2010-04-10 08:20:45
【问题描述】:

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

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

这可能吗?

编辑:像 ASP.net 这样的东西会更适合这个吗?

【问题讨论】:

    标签: php templates


    【解决方案1】:

    不要只是跳上框架的潮流。 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 等。它们仍然有它们的用途。但由于人们倾向于直接告诉人们直接使用框架,我想我会提供不同的视角。

    【讨论】:

      【解决方案2】:

      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/

      【讨论】:

        【解决方案3】:

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

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

        <?
        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']; 即可。

        【讨论】:

          【解决方案4】:

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

          【讨论】:

            【解决方案5】:

            您可以选择 Model-View-Controller 设计模式。在此处查看有关它的更多信息:

            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 的扩展版本。

            【讨论】:

            • +1:很好的解释,但正如您所提到的,smarty 将是一个更简单的选择。
            【解决方案6】:

            agiletoolkit 是一个轻量级框架,它在实现 MVC 方面做得很好,并且作为奖励,它还提供了与前端 Jquery UI 的轻松集成,因此您可以非常轻松地创建漂亮的网站,并完成对数据库的 CRUD 访问。

            正如其他人所提到的,如果您在方法上自律,您可以用普通的 php 自己执行此操作,但是 - 遵守自律并不总是那么容易,尤其是在有截止日期的情况下。

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

            如果这也是您要查找的内容,请查看此php framework with jquery integration

            【讨论】:

              猜你喜欢
              • 1970-01-01
              • 2019-08-16
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 2011-07-05
              • 2015-12-01
              • 2021-06-13
              • 1970-01-01
              相关资源
              最近更新 更多