laravel----luman开发记录

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

 

猜你喜欢

转载自xialluyouyue.iteye.com/blog/2251115
今日推荐