cybaline/cybaline

此包最新版本(dev-master)的许可证信息不可用。

PHP 中的另一个网络服务框架

安装: 20

依赖项: 0

建议者: 0

安全: 0

星级: 2

关注者: 3

分支: 0

开放问题: 0

类型:框架

dev-master 2015-12-07 13:28 UTC

This package is not auto-updated.

Last update: 2024-09-14 18:09:44 UTC


README

https://api.travis-ci.org/nerandell/cymbaline.svg?branch=master

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 需要几个库才能运行。

  • 使用 Klein 进行路由。
  • 它使用 Eloquent 与您的数据库交互。
  • 使用 Twig 作为渲染视图的模板引擎。

用法

要查看示例应用程序,您可以在此处检查一个简单的演示 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》原声带中的歌曲。