Luman是lavavel衍生出来的,基本用法跟lavavel差不多,主要是更方便进行api操作,不过luman还是有点蛋疼,一些类库不像lavavel配置文件中那样直接新增provider 使用别名,在控制器、模型等其他地方直接使用别名,我们需要通过composer.json中去加载,例如我们在luman中的app文件夹中新增services(library、extend等等),我们以services为例:
1:composer.json
"autoload": {
"psr-4": {
"App\\": "app/",
"Services\\": "app/Services/"
},
"classmap": [
"database/",
"app/Services/"
]
},
找到autoloadz:新增上述相关services,新增完后compose update,新增相关自动加载信息,具体变化内容,可以通过版本控制器查看,git diff 可以很明显查看。
在这些依赖compose的框架中,命名空间很重要,在app下定义Services文件夹,放入你自定义的类库,使用命名空间:namespace Services;
例如定义一个类 A;
在控制器中直接 $aSevices = new \Services\A();就可以直接调用了。
2,对于我们如何读取配置文件内容,如何使用INPUT,session,DB等等第三方提供的工具,直接通过Facades,网上有很多这样的资料
例如使用DB : use Illuminate\Support\Facades\DB;
3:重点说一说数据库迁移
migration我的理解类似脚手架吧,可能相对于一般的脚手架,migration更多是方便数据库操作,保证每次数据库操作,能够做准确操作,不会出现常见的误操作
1):新建表
php artisan make:migration create_list_table --create=“list”
执行命令在根目录下database/migrations生成对应的文件进行新增数据库表:
<?php
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Database\Migrations\Migration;
class CreateFriendsTable extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::create('list', function (Blueprint $table) {
$table->increments('id');
$table->integer('user_id');
$table->integer('friend_user_id');
$table->char('is_online',1);
$table->timestamps();
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::drop('list');
}
}
编辑完后执行php artisan migrate 就会生成对应的数据库表,
注意:在项目中数据库配置正确,执行命令后发现为什么没有生成对应的表,此时需要更改跟目录下的.env文件,cat .env你会发现
DB_HOST=192.168.1.234
DB_DATABASE=YDD_DB
DB_USERNAME=postgres
DB_PASSWORD=123456 自行修改,这是跟你数据库迁移挂钩的,跟你的项目中数据库中配置没有关系。
2),新增、更新、删除表字段,具体查看migration操作
4,luman还有一个关于查看执行sql,调试很久才发现,
必须在控制器中先加载 DB::connection()->enableQueryLog();我是直接放在构造函数中,方便调试, DB::connection()->enableQueryLog();放在模型层中去发现DB::getQueryLog()不起作用,这倒是蛋疼,后面查看继续研究
5:luman app文件中没有model文件夹,自行加载同Services