makusu/silex-skeleton-rest

此骨架/模板使用Silex构建,用于通用的ReSTful(API)目的。

1.0.0 2013-01-08 16:49 UTC

This package is not auto-updated.

Last update: 2024-09-28 14:40:48 UTC


README

Build Status

描述

此骨架(您也可以现在称之为模板)是使用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/

最终

花点时间查看代码,了解更多,如果你有改进这个的想法,不要犹豫告诉我。

你可以开始了!享受吧!