标签:localhost repo 分享图片 部分 index 美化 laravel json格式 语义
目录
有些时候并不需要使用全套的Yii框架,Yii 本身已经是一个微框架了。
这里可以参考官方:Yii 2.0 权威指南 - 使用 Yii 作为微框架
这部分与 Yii 官方文档无异。
新建一个工作文件夹,暂且命名为 micro-app
在该文件夹下新建 composer.json
文件:
{
"require": {
"yiisoft/yii2": "~2.0.0"
},
"repositories": [
{
"type": "composer",
"url": "https://packagist.laravel-china.org"
}
]
}
请注意这里的 url
,composer 官方库是 https://asset-packagist.org
,因为墙的原因,国内访问速度较慢,因此替换为以上 laravel-china 搭建的库。
运行 composer install
命令(Windows下是 composer.bat install
)
搭建项目结构,在该文件夹下分别新建 web
、controllers
、models
文件夹,结构与 Yii 基础版类似。web
文件夹作为可访问目录使用,里面放入入口文件 index.php
:
<?php
// comment out the following two lines when deployed to production
defined(‘YII_DEBUG‘) or define(‘YII_DEBUG‘, true);
defined(‘YII_ENV‘) or define(‘YII_ENV‘, ‘dev‘);
require(__DIR__ . ‘/../vendor/autoload.php‘);
require(__DIR__ . ‘/../vendor/yiisoft/yii2/Yii.php‘);
$config = require __DIR__ . ‘/../config.php‘;
(new yii\web\Application($config))->run();
新建配置文件,在 micro-app
目录下新建 config.php
文件:
<?php
return [
‘id‘ => ‘micro-app‘,
// the basePath of the application will be the `micro-app` directory
‘basePath‘ => __DIR__,
// this is where the application will find all controllers
‘controllerNamespace‘ => ‘micro\controllers‘,
// set an alias to enable autoloading of classes from the ‘micro‘ namespace
‘aliases‘ => [
‘@micro‘ => __DIR__,
],
];
于是你有了如下的文件结构:
micro-app/
├── composer.json
├── config.php
├── web/
└── index.php
├── models/
└── controllers/
在 config.php
中编写配置信息(可参考Yii基础版或高级版,是一样的):
‘components‘ => [
// 数据库:
// 使用mysql数据库,数据库地址是localhost,使用的库是cms
// 数据库用户名:root,密码:123456
‘db‘ => [
‘class‘ => ‘yii\db\Connection‘,
‘dsn‘ => ‘mysql:host=localhost;dbname=cms‘,
‘username‘ => ‘root‘,
‘password‘ => ‘123456‘,
],
// 请求:
// 允许使用JSON格式的请求,并配置JSON解析器
‘request‘ => [
‘parsers‘ => [
‘application/json‘ => ‘yii\web\JsonParser‘,
]
],
// 响应:
// 返回数据的格式为JSON
‘response‘ => [
‘format‘ => ‘json‘,
],
// URL路由:
// 参考官方文档可以对URL进行美化、语义化
// ‘urlManager‘ => [
// ‘enablePrettyUrl‘ => true,
// ‘showScriptName‘ => false,
// ‘enableStrictParsing‘ => true,
// ‘rules‘ => [
// ],
// ],
],
这里的 API 非 restful 风格,而是自定的格式:
{
‘Status‘: 200,
‘Data‘: [],
‘ErrorMessage‘: ‘‘
}
Status
:业务状态码,参考http状态码,200表示成功
Data
:业务数据
ErrorMessage
:错误信息,若无错误则为空
接收 API 数据的一方,在得到响应时,先判断 Status
,若错误应该根据 ErrorMessage
做适当处理。
1、在 models
文件夹下新建文件 User.php
:
<?php
namespace micro\models;
use yii\db\ActiveRecord;
class User extends ActiveRecord
{
}
2、在 controllers
文件夹下新建文件 SiteController.php
:
<?php
namespace micro\controllers;
use micro\models\User;
use yii\web\Controller;
class SiteController extends Controller
{
public function actionIndex()
{
return [
‘Status‘ => 200,
‘Data‘ => User::findOne([‘id‘ => 1]),
‘ErrorMessage‘ => ‘‘,
];
}
}
3、访问
如果你已经把 web
文件夹设置为访问目录,则可尝试访问:
http://localhost/?r=site/index
如果你的访问目录是 micro-app
,那么尝试访问:
http://localhost/web/?r=site/index
响应大概是:
Yii::$app->request->post()
等\web\index.php
中设置测试环境或生产环境,与 Yii 基础版无异标签:localhost repo 分享图片 部分 index 美化 laravel json格式 语义
原文地址:https://www.cnblogs.com/alanabc/p/9728960.html