quimgc / tasks
Laravel 框架。
Requires
- php: >=7.0.0
- acacha/admin-lte-template-laravel: ^5.0
- fideloper/proxy: ~3.3
- laravel/framework: 5.5.*
- laravel/passport: ^4.0
- laravel/tinker: ~1.0
- spatie/laravel-permission: ^2.7
Requires (Dev)
- filp/whoops: ~2.0
- fzaninotto/faker: ~1.4
- mockery/mockery: ~1.0
- phpunit/phpunit: ~6.0
This package is not auto-updated.
Last update: 2024-09-29 04:49:30 UTC
README
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 Normalize 用于避免用户代理的 CSS:https://necolas.github.io/normalize.css/
查看不同浏览器中 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