目前我正在为资源“事件”执行CRUD任务,并且对于每个任务,我有一个页面,该任务提交的表单(即events / create.php,events / read.php,events / update.php) ,events / delete.php)。我想改为处理所有这一页(当有一个带有索引,显示,放置和删除方法的EventsController时,有点像Ruby on Rails)。我不想使用框架。我怎么能在原始的PHP中做到这一点?
答案 0 :(得分:0)
这是通过两件事来实现的。
首先,通过操纵服务器配置将所有流量定向到此页面。在Apache的情况下,通常通过将.htaccess
文件放在项目的webroot中来完成,其中包含以下内容:
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule .+ index.php [L]
将所有流量定向到index.php
。
其次,您的PHP脚本必须能够通过至少捕获请求URI,方法和正文将每个请求转换为有意义的内容。
因为您对使用框架不感兴趣,所以您将为您完成工作。首先,您应该查看$_SERVER['REQUEST_URI']
,$_SERVER['REQUEST_METHOD']
并使用以下内容捕获原始请求正文:
$body = file_get_contents('php://input');
获得此数据后,您必须根据上述内容决定如何在脚本中触发相应的函数,其中包括解析URL,检查请求内容类型标头以决定如何解析输入等等上。
如果您认为这是太多的工作,因为有许多预制解决方案,您应该look at FastRoute which is a very popular library涵盖我在这里写的所有内容。