makusu / silex-skeleton-rest
此骨架/模板使用Silex构建,用于通用的ReSTful(API)目的。
Requires
- doctrine/dbal: 2.2.*
- silex/silex: 1.0.*
- symfony/class-loader: 2.1.*
Requires (Dev)
- symfony/browser-kit: 2.1.*
This package is not auto-updated.
Last update: 2024-09-28 14:40:48 UTC
README
描述
此骨架(您也可以现在称之为模板)是使用Silex构建的,用于通用的ReSTful(API)目的。
背景
此代码存在的根本原因是我很难找到一个好的例子来展示如何使用Silex进行实际应用。我需要一个可维护和可测试的代码,尤其是为API编写的。
当然,外面有很多好的幻灯片和信息,但大多数只是给出了一部分的解释。
我不是一个好的读者。我需要一个例子!
常见问题解答
"伙计,你可以随意设计Silex。这就是它的美妙之处。"
- "是的,我知道。但我想要一个漂亮的、稳固的框架。"
"你为什么不直接使用Symfony2呢?"
- "太多了"(不要误解我。我喜欢Symfony2,我在一些项目中使用它。但说真的,它有时候太庞大了。)
"这个代码真的能工作吗?"
- "是的。我把它用在我的某些小项目中。事实上,我甚至比使用Symfony2更多用它。"
"不要再闲聊了!给我看看!"
- "在这里!"
你需要知道的事情
安装
你可以按常规方式操作,即克隆此存储库,或者最简单的方法,你只需直接在此处下载composer(如果你还没有的话)
https://composer.php.ac.cn/download/
下载完成后,你可以通过运行此命令开始安装所需的包
$ php composer.phar create-project makusu/silex-skeleton-rest
如果你想要使控制器测试正常工作,可以在后面添加选项"--dev"。
为此测试,你需要将此SQL命令放入MySQL中。
CREATE DATABASE `tododb`; CREATE DATABASE `todotestdb`; CREATE TABLE `tododb`.`item` ( `id` int(11) NOT NULL AUTO_INCREMENT, `name` varchar(255) NOT NULL, `created` datetime NOT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; CREATE TABLE `todotestdb`.`item` ( `id` int(11) NOT NULL AUTO_INCREMENT, `name` varchar(255) NOT NULL, `created` datetime NOT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; insert into `tododb`.`item` values (null, "Download silex-skeleton-rest.", "2013-01-01 00:00:00"), (null, "Utilize the skeleton so I can use it for my project.", "2013-01-06 19:00:00"); insert into `todotestdb`.`item` values (null, "Download silex-skeleton-rest.", "2013-01-01 00:00:00"), (null, "Utilize the skeleton so I can use it for my project.", "2013-01-06 19:00:00");
为什么我们需要有两个相同的数据库?这并不是强制性的。这个想法只是区分我们的开发和测试数据库环境。
更改配置以适应你的环境。不用担心,这是简单的。
- app/config/dev.php
- app/config/prod.php
- app/config/test.php
- 将app/phpunit.xml.dist复制到app/phpunit.xml,并查看文件底部的环境
- 你的服务器配置必须指向:web/index.php(prod)和web/index_dev.php(dev)
如果一切安装和配置都正确,请尝试在浏览器中输入此URL
http://silex-skeleton-rest/item
你应该看到以下结果
[
{
id: "1",
name: "Download silex-skeleton-rest.",
created: "2013-01-01 00:00:00"
},
{
id: "2",
name: "Utilize the skeleton so I can use it for my project.",
created: "2013-01-06 19:00:00"
}
]
也请尝试将其放在你的URL中
http://silex-skeleton-rest/item/1
http://silex-skeleton-rest/item/2
如果你能看到一个漂亮的JSON结果,你可以尝试使用HTTP方法POST、PUT和DELETE来通过你的API操作数据库。
最后,为了测试目的,你只需在主目录中运行此命令
$ phpunit -c app/
最终
花点时间查看代码,了解更多,如果你有改进这个的想法,不要犹豫告诉我。
你可以开始了!享受吧!