Downloads
Stars
Version
https://laravel.com/docs/5.6/scheduling
Al fitxer App\Console\Kernel es pot configurar a la funció shcedule.
Un cop configurar s'ha d'afegir una configuració al cron:
* * * * * php /path-to-your-project/artisan schedule:run >> /dev/null 2>&1
Per solucionar l'error dels {{ variable }} del vue a l'interior d'un fixer .php, la solució està en posar @ al devant de {{ variable }}
https://adminlte.io/themes/AdminLTE/pages/UI/general.html
http://php.net/manual/es/book.json.php
json_encode és per passar d'una variable a JSON.
Si va bé executarà una cosa, i si va malament, una altra.
Serveix per compilar al instant.
#Crear una comanda
Per crear una comanda s'ha de fer:
php artisan make:command nomFitxerComanda
$tasks = Task::all()->toArray();
$headers = array_keys($tasks[0]);
dd($headers);
El resultat és:
array:4 [
0 => "id"
1 => "name"
2 => "created_at"
3 => "updated_at"
Ara es pot utilitzar $headers per a retornar alguna cosa en format de table:
$this->table($headers,$tasks);
D'aquesta forma, no hi ha res hardcoded i si mai es modifica la taula, el codi funcionarà igual.
S'ha d'executar abans d'arrencar el servidor web, ja que utilitza el port 8080.
Aquests passos es fan cada cop que es treballi amb API.
https://laravel.com/docs/5.5/passport
per executar automàticament el php artisan passport:install es pot fer:
Al fitxer DatabaseSeeder.php a la funció run, afegir:
Artisan::call('passport:install');
https://github.com/monterail/vue-multiselect
Un paquet laravel ho és perquè té providers. Els paquets s'instal·len gràcies als fitxers composer.json.
S'ha de fer un npm install.
npm install
Per crear:
php artisan make:request nom
Els requests ha de complir:
Enllaç: http://acacha.org/mediawiki/URL#.WhcefU3Wx-U
User Agent -> browser.
Paquet es divideix amb dos parts:
Capçalera-> Metdades.
Dades -> la informació.
Per diferenciar entre URL i URI és:
Al composer.json s'ha de canviar l'autoload apuntant al fitxer helpers.php, d'aquesta forma s'aconsegueix que tothom pugui utilitzar aquest fitxer.
"autoload": {
...
"files" : [
"app/helpers.php"
]
},
Tot seguit s'executa:
composer dumpautoload
Aquest mètode agafa tots els valors a partir d'una clau passada com a paràmetre.
$collection = collect([
['product_id' => 'prod-100', 'name' => 'Desk'],
['product_id' => 'prod-200', 'name' => 'Chair'],
]);
$plucked = $collection->pluck('name');
$plucked->all();
// ['Desk', 'Chair']
També es pot fer:
$plucked = $collection->pluck('name', 'product_id');
$plucked->all();
// ['prod-100' => 'Desk', 'prod-200' => 'Chair']
Assegura que només s'apliquen els canvis al style que es vol i no en general.
Primer que tot s'ha d'instal·lar:
https://github.com/euvl/vue-js-toggle-button
Tot seguit a l'/home/quim/Code/Tasks/resources/assets/js/quimgc-tasks/index.js s'ha d'afegir:
import ToggleButton from 'vue-js-toggle-button'
Vue.use(ToggleButton)
Un cop fet això, el que s'ha de fer és wrapper, al fitxer Task.php s'ha d'afegir:
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."",
];
}
Amb això sobreescrivim el mèotode toArray per canviar el 0 o 1 per false o true.
https://laravel.com/docs/5.5/dusk
S'han de crear tests de tipus Browser seguint les tres fases:
Preparació
Executar
Comprovar
composer require --dev laravel/dusk
php artisan dusk:install
La última comanda crea una carpeta on s'emmagatzemen imatges del moment que ha fallat per poder veure l'error a posteriori.
Per crear un test:
php artisan dusk:make nomTest
Per executar un test no es pot fer amb shit + f10, s'ha de fer per terminal:
php artisan dusk /ruta/fins/al/test
Però també s'ha de tenir un servidor obert per poder executar el test.
Si es comenta una linia del fitxer DuskTestCase.php es pot veure com s'executa el test:
protected function driver()
{
$options = (new ChromeOptions)->addArguments([
'--disable-gpu',
//'--headless' linia a comentar
]);
return RemoteWebDriver::create(
'http://localhost:9515', DesiredCapabilities::chrome()->setCapability(
ChromeOptions::CAPABILITY, $options
)
);
}
Per configurar el port del test és a .env.dusk.local:
Recomanació: Separar els entorns (Bd, Ports, Controladors,...) per cada cosa.
...
APP_URL=http://localhost:8090
DB_CONNECTION=sqlite_dusk_testing
...
Estem indicant que per als test s'utilitzarà el port 8090 i la bd sqlite_dusk_testing.
Modificar també amb la mateix configuració .env.dusk.testing.
S'ha de tenir en compte que s'ha d'obrir un servidor escoltant pel mateix port que s'executarà el test:
php artisan serve --port=8090 --env=dusk.local
També s'ha de modificar el fitxer database.php i afeigr:
'sqlite_dusk_testing' => [
'driver' => 'sqlite',
'database' => env('DB_DATABASE_TESTING', database_path('nom.bd.creada')),
'prefix' => '',
],
Per parlar del fill al pare;
Enllaç wiki acacha:
S'ha creat un nou projecte vue:
vue init webpack nomPlantilla
S'ha executat npm run dev per executar i veure les modificacions al navegador.
Per veure la disponibilitat de les etiquetes CSS als diferents navegadors:
https://github.com/surmon-china/vue-quill-editor
php artisan make:controller nomControlador
Automàticament apareixerà a l'apartat de controladors del nostre projecte.
https://laravel.com/docs/5.5/mail
Per crear un OrderShiped:
php artisan make:mail OrderShipped
https://laravel.com/docs/5.5/mail#markdown-mailables
Des d'explotació s'ha d'enviar correctament el correu al seu destinatari. Es pot usar els següents drivers:
Amb $browser->script("es pot executar qualsevol codi JS");
https://laravel.com/docs/5.5/events
https://vuetifyjs.com/vuetify/quick-start
Primer que tot es crea la plantilla:
$ z Tasks
$ cd vue
$ vue init vuetifyjs/webpack vuetify-tasks
Apareix el següent wizard:
? Project name vuetify-tasks
? Project description A Vue.js project
? Author quimgc <[email protected]>
? 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
Un cop creat s'entra dins del directori creat i s'executa:
npm run dev
drawer -> calaixera de navegació.
Instal·lar al servidor:
composer require predis/predis
sudo apt-get install redis-server
Al .env posar QUEUE_DRIVER=redis
També instal·lar:
sudo apt-get install supervisor
cd /etc/supervisor/conf.d
sudo nano tasks-laravel-worker.conf
Afegir tot això al fitxer de configuració (compte amb els paths):
[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
Al fitxer .env canviar QUEUE_DRIVER=sync per QUEUE_DRIVER=redis