一个 RESTful 持久性解决方案,可与骨干.js...在 PHP 中?

2022-08-30 20:36:26

我首先要说的是,我是一个蹩脚的程序员,我确信我想做的事情可以在10行node或Rails或其他东西中完成,但是PHP是我可用的。

因此,我希望找到一个简单的PHP库,它将数据库调用包装在一个看起来像RESTful模型的API中。

我试图找到这样的东西几乎没有成功 - 搜索或打开几个无数页面,我不知道如何过滤它们。PHP CRUDPHP REST

我真的试图在这里保持简单,我不想要像Zend这样的大框架或其他东西。我在Backbone中处理的模型非常简单。我只想将s发送到,比如说,或s发送到,等等,并让PHP对数据库做正确的事情。GET/notes/3POST/notes

也许我问得太多了,但在我看来,这是像Rails这样的其他框架所提供的。有什么建议吗?噻吩...


答案 1

编辑十一月2018:虽然我不会敲代码Igniter,但现在Laravel(目前为5.5)是我使用的框架。

这是一篇很好的文章,总结了我使用Laravel的原因。

为了开始跳跃,我推荐Laracasts。这是一个订阅视频教程服务,深入探讨了如何使用Laravel(以及其他与Web开发相关的东西)。

原答:

对我来说,Codeigniter是最简单的类似Rails的框架。它是裸露的骨头,您可以轻松地从头开始构建CRUD应用程序。

滚动自己的应用程序的最大问题是安全性。Codeigniter可以通过保护您免受许多常见安全风险(例如直接使用_POST美元的数组)以及未正确过滤数据来帮助您构建一个不易被黑客入侵的网站。更不用说它提供了许多帮助程序类,例如表单验证。

您可以在他们的网站上查看文档。只要您记住导航隐藏在每个页面的顶部,它就非常易于使用。:D


答案 2

您了解 CRUD 的内部工作原理吗?从PHP的角度来看,它可以像在每个REST调用可能性上拥有一个switch语句一样简单。

在此处查看此页面: http://www.codethinked.com/building-epic-win-with-backbone-js

跳到标题为“将其连接到服务器”的部分。

您的 PHP 脚本只需要满足这些要求即可。

一个简单的原型代码:

switch($_SERVER['REQUEST_METHOD']){
    case 'POST':
        // create new item
        break;
    case 'GET':
        // get item(s)
        break;
    case 'PUT':
        // update item
        break;
    case 'DELETE':
        // delete item
        break;
}

您还需要按如下方式设置文件(以处理访问不存在的URL):.htaccess

# Turn on rewrite engine and redirect broken requests to index
<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteCond %{REQUEST_FILENAME} !-l
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule .* index.php [L,QSA]
</IfModule>

像这样的URL并不真实存在,这就是为什么你需要路由。http://mysite.com/1

编辑:如果您打算在HTML表单中使用PUT或删除,请忘记它。在撰写本文时,它尚未在HTML5中被接受,并且几乎所有浏览器都不支持此功能。我对此的“修复”是用于请求,以及所有其他(本身和)。例:GETGETPOSTPOSTPUTDELETE

<form action="POST" action="/users/5">
    <input type="hidden" name="method" value="DELETE"/>
    <button>Delete User #5</button>
</form>

但是,这不是AJAX的问题,因为显然您可以将XMLHttpRequest方法设置为所需的任何内容而不会出现问题。


推荐