我想创建一个php restful api-centric web应用程序/网站,其中我有从我的前端代码调用的data/api.除了每次加载页面时都进行HTTP/curl请求调用,我还可以使用像slim这样的框架来进行内部API调用?
我不确定是否可以在我的前端代码中包含api以供内部使用,并且仍然可以将它分开.
我的想法是这样的:
"example.com/api/story/todays-weather/"
pulls in the json formatted story with a http request with curl or Ajax
Run Code Online (Sandbox Code Playgroud)
但我可以这样做:
require("/api/internal.php");
$uri = "/story/todays-weather/";
$call = api::getStory($uri);
$result = json_decode($call);
.....
Run Code Online (Sandbox Code Playgroud)
我是朝着正确的方向前进还是离开了?
api和前端代码在同一个云盒(亚马逊E2/LAMP)上,我正在计划使用memcached为api.
建立:
问题:
我的数据库中有10,000篇文章.我需要一种方法只允许在页面上显示X个故事.我知道我可以在调用模板之前限制控制器中的数字,但根据使用的模板,该数字会有所不同.我将有一个控制器来处理所有文章.我需要一种方法将数字从模板传递到控制器以限制数组.我不想删除所有10,000篇文章然后使用twig"slice"filter/func.
我知道在django你可以使用下面的.这只会加载前3个故事.
{% get_latest_stories 3 sports as story_list %}
{% for story in story_list %}
{{ story.title }}
{% endfor %}
Run Code Online (Sandbox Code Playgroud)
这是我目前的文件.
调节器
<?php
$stories = news_stories::getStories("sports",5); //getStories(section,limit);
?>
<?=$twig->render("storyList.html", array('stories' => $stories))?>
Run Code Online (Sandbox Code Playgroud)
查看/模板
{% for story in story_list %}
{{ story.title }}
{% endfor %}
Run Code Online (Sandbox Code Playgroud)
摘要
我想要一种方法将一个数字从模板传递给控制器,这样我就可以限制从DB返回的行数