quimgc/tasks

Laravel 框架。

维护者

详细信息

github.com/quimgc/Tasks

源代码

问题

安装: 4

依赖者: 0

建议者: 0

安全: 0

星标: 0

关注者: 1

分支: 0

开放性问题: 0

语言:HTML

类型:项目

0.1.0 2017-11-24 15:53 UTC

README

Scrutinizer Code Quality StyleCI Dependency Status Build Status Latest Stable Version Total Downloads Latest Unstable Version License Monthly Downloads Daily Downloads composer.lock

Laravel 调度

https://laravel.net.cn/docs/5.6/scheduling

在 App\Console\Kernel 文件中可以配置 schedule 函数。

一旦配置完成,就需要在 crontab 中添加一个配置。

* * * * * php /path-to-your-project/artisan schedule:run >> /dev/null 2>&1

PHP 中模板字符串错误

为了解决在 .php 文件内部 vue 的 {{ variable }} 错误,解决方案是在 {{ variable }} 前面加上 @

adminlte 闹钟链接

https://adminlte.cn/themes/AdminLTE/pages/UI/general.html

PHP 中的 JSON

https://php.ac.cn/manual/es/book.json.php

json_encode 用于将变量转换为 JSON。

PROMISES

如果一切顺利,将执行一个操作,如果出错,将执行另一个。

npm run watch // npm run watch-poll

用于即时编译。

创建命令

要创建一个命令,需要做

php artisan make:command nomFitxerComanda

额外

获取表格标题,以避免硬编码实现

$tasks = Task::all()->toArray();
$headers = array_keys($tasks[0]);
dd($headers);

结果是

array:4 [
  0 => "id"
  1 => "name"
  2 => "created_at"
  3 => "updated_at"

现在可以使用 $headers 来返回表格格式的某些内容

    $this->table($headers,$tasks);

这样,就没有硬编码,如果表格将来发生变化,代码仍然可以正常工作。

左侧菜单目录

NPM RUN HOT

在启动 web 服务器之前必须执行,因为它使用端口 8080。

API passport

每次处理 API 时都会执行这些步骤。

https://laravel.net.cn/docs/5.5/passport

要自动执行 php artisan passport:install,可以这样做

DatabaseSeeder.php 文件的 run 函数中添加

Artisan::call('passport:install');

VUE 多选

https://github.com/monterail/vue-multiselect

laravel 包

laravel 包之所以是 laravel 包,是因为它有提供者。包通过 composer.json 文件安装。

不能 CD NODE_MODULES

需要执行 npm install。

npm install

创建一个 REQUEST 类型的对象

为了创建

php artisan make:request nom

请求必须满足

  • 验证。

URL

链接:http://acacha.org/mediawiki/URL#.WhcefU3Wx-U

User Agent -> 浏览器。

包分为两部分

  • 头部 -> 元数据。

  • 数据 -> 信息。

区分 URL 和 URI 的方法是

  • 如果告诉我们要如何到达那里,那就是 URL。
  • 如果识别某物,那就是 URI。

辅助函数

在 composer.json 中需要更改 autoload 指向 helpers.php 文件,这样就可以让每个人都能使用这个文件。

   "autoload": {
       ...
        "files" : [
         "app/helpers.php"
        ]
    },

接下来执行

composer dumpautoload

PLUCK

此方法从传递的键参数中获取所有值。

$collection = collect([
    ['product_id' => 'prod-100', 'name' => 'Desk'],
    ['product_id' => 'prod-200', 'name' => 'Chair'],
]);


$plucked = $collection->pluck('name');

$plucked->all();

// ['Desk', 'Chair']

也可以这样做

    $plucked = $collection->pluck('name', 'product_id');
    
    $plucked->all();
    
    // ['prod-100' => 'Desk', 'prod-200' => 'Chair']

SCOPED

确保只对要修改的样式应用更改,而不是全局更改。

SPA

切换按钮

首先需要安装

https://github.com/euvl/vue-js-toggle-button

接下来,在 /home/quim/Code/Tasks/resources/assets/js/quimgc-tasks/index.js 中添加

import ToggleButton from 'vue-js-toggle-button'
Vue.use(ToggleButton)

完成以上步骤后,需要做的是 wrapper,在 Task.php 文件中添加

public function toArray()
    {
        return [
            'id' => $this->id,
            'name' => $this->name,
            'description' => $this->description,
            'user_id' => $this->user_id,
            'completed' => $this->completed? true:false,
            'created_at' => $this->created_at."",
            'updated_at' => $this->updated_at."",
        ];
    }

这样,我们重写了 toArray 方法,将 0 或 1 改为 false 或 true。

Laravel Dusk

https://laravel.net.cn/docs/5.5/dusk

需要创建遵循三个阶段的 Browser 类型的测试

  • 准备

  • 执行

  • 检查

安装

composer require --dev laravel/dusk
php artisan dusk:install

最后一个命令创建一个文件夹,用于存储失败的图片,以便稍后查看错误。

要创建一个测试

php artisan dusk:make nomTest

要执行测试,不能使用 shift + f10,必须通过终端进行。

php artisan dusk /ruta/fins/al/test

但是,也必须有一个服务器正在运行才能执行测试。

如果注释掉文件 DuskTestCase.php 中的某一行,就可以看到测试是如何执行的。

 protected function driver()
    {
        $options = (new ChromeOptions)->addArguments([
            '--disable-gpu',
            //'--headless' linia a comentar
        ]);

        return RemoteWebDriver::create(
            'https://:9515', DesiredCapabilities::chrome()->setCapability(
                ChromeOptions::CAPABILITY, $options
            )
        );
    }

配置测试端口的文件是 .env.dusk.local

建议:为每个东西分别分离环境(数据库、端口、控制器等)。

...
APP_URL=https://:8090

DB_CONNECTION=sqlite_dusk_testing
...

我们指示测试将使用端口 8090 和数据库 sqlite_dusk_testing。

还需要修改 .env.dusk.testing 中的相同配置。

需要注意,必须打开一个监听相同端口的服务器来执行测试。

php artisan serve --port=8090 --env=dusk.local

还需要修改 database.php 文件并添加内容。

'sqlite_dusk_testing' => [
            'driver'   => 'sqlite',
            'database' => env('DB_DATABASE_TESTING', database_path('nom.bd.creada')),
            'prefix'   => '',
        ],

父进程和子进程之间的通信

要和子进程通信;

  • 需要事件。
  • 属性。

VUE CUSTOM-UI

查看 wiki 链接 acacha

已创建一个新的 Vue 项目

vue init webpack nomPlantilla

执行 npm run dev 以在浏览器中查看修改。

查看不同浏览器中 CSS 标签的可用性

VUE QUILL EDITOR

https://github.com/surmon-china/vue-quill-editor

创建控制器

php artisan make:controller nomControlador

它将自动出现在我们的项目控制器部分。

电子邮件

https://laravel.net.cn/docs/5.5/mail

创建 OrderShiped

php artisan make:mail OrderShipped

创建发送邮件的模板(Markdown 格式)

https://laravel.net.cn/docs/5.5/mail#markdown-mailables

邮件操作

从操作环境发送的邮件必须正确发送到其接收者。可以使用以下驱动程序

  • 如果使用 Gmail,用户名和密码需要使用 Gmail 的。

备注

使用 $browser->script(") 可以执行任何 JS 代码;

事件

https://laravel.net.cn/docs/5.5/events

VUETIFY

https://vuetifyjs.com/vuetify/quick-start

首先创建模板

$ z Tasks
$ cd vue
$ vue init vuetifyjs/webpack vuetify-tasks

出现以下向导

? Project name vuetify-tasks
? Project description A Vue.js project
? Author quimgc <quimgonzalez@iesebre.com>
? Vue build standalone
? Install vue-router? Yes
? Use ESLint to lint your code? Yes
? Pick an ESLint preset Standard
? Set up unit tests Yes
? Pick a test runner karma
? Setup e2e tests with Nightwatch? Yes
? Use a-la-carte components? No
? Use custom theme? No
? Should we run `npm install` for you after the project has been created? (recommended) npm

创建后,进入创建的目录并执行

npm run dev

drawer -> 导航抽屉。

REDIS

在服务器上安装

composer require predis/predis
sudo apt-get install redis-server

在 .env 中设置 QUEUE_DRIVER=redis

还需要安装

sudo apt-get install supervisor
cd /etc/supervisor/conf.d
sudo nano tasks-laravel-worker.conf

将所有这些添加到配置文件中(注意路径)

    [program:tasks-laravel-worker]
    process_name=%(program_name)s_%(process_num)02d
    command=php /home/quim/Code/Tasks/artisan queue:work redis --sleep=3 --tries=3
    autostart=true
    autorestart=true
    user=quim
    numprocs=8
    redirect_stderr=true
    stdout_logfile=/home/quim/Code/Tasks/storage/logs/worker.log

在 .env 文件中,将 QUEUE_DRIVER=sync 改为 QUEUE_DRIVER=redis