cybaline / cybaline
PHP 中的另一个网络服务框架
Requires
- illuminate/database: *
- klein/klein: ^2.1
- twig/twig: ~1.0
Requires (Dev)
- phpunit/phpunit: 4.1.x
This package is not auto-updated.
Last update: 2024-09-14 18:09:44 UTC
README
cybaline 是 PHP 的另一个网络服务框架。它遵循 MVC 模式,通过在框架中包含常用任务来简化网络应用程序的开发,从而减少开发所需的时间和精力。
入门
- 需要 PHP 5.3.x
- 安装 Composer
- 设置 URL 重写,以便所有请求都由 index.php 处理
安装
- 获取 Composer
- 使用
php composer.phar require cybaline/cybaline安装 cybaline - 将以下内容添加到您应用程序的主要 PHP 文件中:
require 'vendor/autoload.php';
您还可以将以下内容添加到现有的 composer.json 文件中:"cybaline/cybaline": "*"。一个示例 composer.json 如下所示
{
"name": "cymbaline/cymbaline_demo",
"description": "Demo for using cymbaline",
"authors": [
{
"name": "Ankit Chandawala",
"email": "ankitchandawala@gmail.com"
}
],
"require": {
"cymbaline/cymbaline": "@dev"
},
"minimum-stability": "dev"
}
cybaline 需要几个库才能运行。
用法
要查看示例应用程序,您可以在此处检查一个简单的演示 here。
一旦安装了 cybaline,请开始将所有请求路由到 index.php。以下是一个示例 nginx 配置,用于路由请求
location / {
try_files $uri $uri/ /index.php;
root /path_to_your_root_dir;
index index.html index.htm index.php;
}
将以下行添加到我们的 index.php 文件中:require 'vendor/autoload.php';
cybaline 基于 MVC 设计模式。您可以开始定义您的模型、控制器和视图,cybaline 将使用简短而紧凑的代码为您连接它们,从而减少构建网络应用程序所需的开发时间。
您的应用程序代码应位于名为 app 的顶级目录中。然后您可以开始添加您的模型、控制器和视图。通常,您的目录结构如下所示
app
├── config
│ └── database.php
├── controllers
│ ├── CompanyController.php
│ └── UserController.php
├── models
│ ├── Company.php
│ └── User.php
├── routes.php
└── views
└── index.html
您定义的模型位于 app/models 目录中。要创建模型,您必须从 cybaline 提供的 BaseModel 类扩展。关于更多信息,请查看 Eloquent 文档。
use Cymbaline\BaseModel; class User extends BaseModel { }
BaseModel 内部使用 Eloquent 的 Model 类,并提供相同的配置选项。有关更多信息,请参阅 Eloquent 文档。
cybaline 从 config/database.php 中获取数据库配置。您的数据库文件将如下所示
<?php $connection = [ 'host' => 'your-host', 'driver' => 'mysql', 'database' => 'your-database', 'username' => 'your-user', 'password' => 'your-password', 'charset' => 'utf8', 'collation' => 'utf8_unicode_ci', 'prefix' => '' ];
现在定义一个名为 UserController 的控制器目录
use Cymbaline\Controller; class UserController extends Controller { }
您还可以在 app/views/ 目录中定义一个视图,它将使用 Twig 进行渲染。
一旦添加了模型和相关控制器,cybaline 可以为您自动创建 RESTful CRUD API。
例如,要创建新用户
$ curl -X POST -H "Content-Type: application/json" -d '{"name": "User1"}' 'https://:8080/user'
要检索用户
$ curl -X GET -H 'https://:8080/user/1'
将给出以下输出
{
"id": 1,
"name": "User1",
"created_at": "2015-12-06 03:47:59",
"updated_at": "2015-12-06 03:47:59"
}
但是,完全由您定义您想要哪些 API,并且您可以覆盖默认行为。
您也可以定义自己的路由。自定义路由定义在 app/routes.php 目录中。以下是一个示例路由添加。cybaline 使用 Klein 进行路由和路由选项。
use Cymbaline\Route; Route::addRoute('get', '/hello/[:id]', function($request) { $controller = new UserController(); $controller->test_custom_route($request->id); });
然后向控制器添加一个方法
use Cymbaline\Controller; class UserController extends Controller { public function test_custom_route($id) { $user = call_user_func(array($this->_model, 'find'), $id); $this->renderView('index.html', array('name'=>$user->name)); } }
renderView 方法使用 Twig 来渲染视图。
您的 index.html 将看起来像这样
<html lang="en" xmlns="http://www.w3.org/1999/xhtml"> <head> <meta name="generator" content= "HTML Tidy for Linux/x86 (vers 25 March 2009), see www.w3.org" /> <meta charset="UTF-8" /> <title>Title</title> </head> <body> Hello {{name}} </body> </html>
许可证
cymbaline 是在 MIT 许可证下提供的。
源代码
最新的开发者版本可在 GitHub 仓库中找到: https://github.com/nerandell/cymbaline
Cymbaline 的意思是什么?
Cymbaline 是 Pink Floyd 乐队从电影《More》原声带中的歌曲。