PHPackages                             quimgc/tasks - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Framework](/categories/framework)
4. /
5. quimgc/tasks

ActiveProject[Framework](/categories/framework)

quimgc/tasks
============

The Laravel Framework.

0.1.0(8y ago)04MITHTMLPHP &gt;=7.0.0

Since Nov 24Pushed 8y ago1 watchersCompare

[ Source](https://github.com/quimgc/Tasks)[ Packagist](https://packagist.org/packages/quimgc/tasks)[ RSS](/packages/quimgc-tasks/feed)WikiDiscussions master Synced 3d ago

READMEChangelogDependencies (10)Versions (12)Used By (0)

Tasks
=====

[](#tasks)

[![Scrutinizer Code Quality](https://camo.githubusercontent.com/6f46d77fc653c3f08e140adeeed47ab142ea8d38ff218d4d47a9cc9f5e53159a/68747470733a2f2f7363727574696e697a65722d63692e636f6d2f672f7175696d67632f5461736b732f6261646765732f7175616c6974792d73636f72652e706e673f623d6d6173746572)](https://scrutinizer-ci.com/g/quimgc/Tasks/?branch=master)[![StyleCI](https://camo.githubusercontent.com/ffdd41bb80b6131dd1f6159dae3c8d6f3f138481fb3e6f1e5dd593b6e8ff984e/68747470733a2f2f7374796c6563692e696f2f7265706f732f3130373137333039342f736869656c643f6272616e63683d6d6173746572)](https://styleci.io/repos/107173094)[![Dependency Status](https://camo.githubusercontent.com/ed7555e7ddd6fb6150252ff5d5e8fbed250a004f9c698f8244146ded37db788e/68747470733a2f2f7777772e76657273696f6e6579652e636f6d2f757365722f70726f6a656374732f3561313834356430306662323466323066393430616338642f62616467652e7376673f7374796c653d666c61742d737175617265)](https://www.versioneye.com/user/projects/5a1845d00fb24f20f940ac8d)[![Build Status](https://camo.githubusercontent.com/5717b5db26a6c8ef06d8f8fdff459476a663e18489d617a93279fad44b6814ec/68747470733a2f2f7472617669732d63692e6f72672f7175696d67632f5461736b732e7376673f6272616e63683d6d6173746572)](https://travis-ci.org/quimgc/Tasks)[![Latest Stable Version](https://camo.githubusercontent.com/3f718220afc24b2f44fd66fe3584ec2c38399f26c22ea0f3458cd0c4d7a2f0c9/68747470733a2f2f706f7365722e707567782e6f72672f7175696d67632f7461736b732f762f737461626c65)](https://packagist.org/packages/quimgc/tasks)[![Total Downloads](https://camo.githubusercontent.com/3cddbfc6ada21053224405ffbb539e61f7075db78474f54f1fffc46e95629825/68747470733a2f2f706f7365722e707567782e6f72672f7175696d67632f7461736b732f646f776e6c6f616473)](https://packagist.org/packages/quimgc/tasks)[![Latest Unstable Version](https://camo.githubusercontent.com/bed916c00378e988914e23f2a376460803be296f80963f1e8c95e6fd53b4361a/68747470733a2f2f706f7365722e707567782e6f72672f7175696d67632f7461736b732f762f756e737461626c65)](https://packagist.org/packages/quimgc/tasks)[![License](https://camo.githubusercontent.com/fc02cb579f4649cc717f36af93e0661b16896b55be915ac36e563d86746e87a3/68747470733a2f2f706f7365722e707567782e6f72672f7175696d67632f7461736b732f6c6963656e7365)](https://packagist.org/packages/quimgc/tasks)[![Monthly Downloads](https://camo.githubusercontent.com/891f1842b9005dbdeaf9b06f383a61345de8ad18e44df4736378f2a400add19c/68747470733a2f2f706f7365722e707567782e6f72672f7175696d67632f7461736b732f642f6d6f6e74686c79)](https://packagist.org/packages/quimgc/tasks)[![Daily Downloads](https://camo.githubusercontent.com/e95935e651e41e8e21dd73c89101981a93f298f48e3818cdb107719267f46bce/68747470733a2f2f706f7365722e707567782e6f72672f7175696d67632f7461736b732f642f6461696c79)](https://packagist.org/packages/quimgc/tasks)[![composer.lock](https://camo.githubusercontent.com/3872ac5882a8d22e37e83d8cd0f0b4f7f56ecd0e3750e592ba64c594b92d67f4/68747470733a2f2f706f7365722e707567782e6f72672f7175696d67632f7461736b732f636f6d706f7365726c6f636b)](https://packagist.org/packages/quimgc/tasks)

Laravel Scheduling
==================

[](#laravel-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

```

Error de moustachs amb PHP
--------------------------

[](#error-de-moustachs-amb-php)

Per solucionar l'error dels {{ variable }} del vue a l'interior d'un fixer .php, la solució està en posar **@** al devant de {{ variable }}

Enllaç de adminlte alarms
-------------------------

[](#enllaç-de-adminlte-alarms)

JSON amb php
------------

[](#json-amb-php)

json\_encode és per passar d'una variable a JSON.

PROMISES
--------

[](#promises)

Si va bé executarà una cosa, i si va malament, una altra.

npm run watch // npm run watch-poll
-----------------------------------

[](#npm-run-watch--npm-run-watch-poll)

Serveix per compilar al instant.

\#Crear una comanda

Per crear una comanda s'ha de fer:

```
php artisan make:command nomFitxerComanda

```

Extres
======

[](#extres)

Agafar header d'una taula per no implementar-ho hardcoded
---------------------------------------------------------

[](#agafar-header-duna-taula-per-no-implementar-ho-hardcoded)

```
$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.

DIRECTORI MENÚ ESQUERRA
=======================

[](#directori-menú-esquerra)

NPM RUN HOT
===========

[](#npm-run-hot)

S'ha d'executar abans d'arrencar el servidor web, ja que utilitza el port 8080.

API passport
============

[](#api-passport)

Aquests passos es fan cada cop que es treballi amb API.

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');

```

VUE multiselect
===============

[](#vue-multiselect)

Paquet laravel
==============

[](#paquet-laravel)

Un paquet laravel ho és perquè té providers. Els paquets s'instal·len gràcies als fitxers composer.json.

CAN'T CD NODE\_MODULES
======================

[](#cant-cd-node_modules)

S'ha de fer un npm install.

```
npm install

```

Crear un objecte de tipus REQUEST
=================================

[](#crear-un-objecte-de-tipus-request)

Per crear:

```
php artisan make:request nom

```

Els requests ha de complir:

- Validacions.

URL
===

[](#url)

Enllaç:

**User Agent** -&gt; browser.

Paquet es divideix amb dos parts:

- Capçalera-&gt; Metdades.
- Dades -&gt; la informació.

Per diferenciar entre URL i URI és:

- Si ens diu com arribar a aquella cosa és URL.
- Si identifica alguna cosa és URI.

Helpers
=======

[](#helpers)

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

```

PLUCK
=====

[](#pluck)

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']

```

SCOPED
======

[](#scoped)

Assegura que només s'apliquen els canvis al style que es vol i no en general.

SPA
===

[](#spa)

Toggle button
=============

[](#toggle-button)

Primer que tot s'ha d'instal·lar:

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.

Laravel Dusk
============

[](#laravel-dusk)

S'han de crear tests de tipus **Browser** seguint les tres fases:

- Preparació
- Executar
- Comprovar

Instal·lació
------------

[](#installació)

```
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'   => '',
        ],

```

Comunicació entre pare i fill
=============================

[](#comunicació-entre-pare-i-fill)

Per parlar del fill al pare;

- És necessita events.
- Propietats.

VUE CUSTOM-UI
=============

[](#vue-custom-ui)

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.

- CSS Normalize per evitar els css dels user agents:

Per veure la disponibilitat de les etiquetes CSS als diferents navegadors:

-

VUE QUILL EDITOR
================

[](#vue-quill-editor)

CREAR CONTROLADORS
==================

[](#crear-controladors)

```
php artisan make:controller nomControlador

```

Automàticament apareixerà a l'apartat de controladors del nostre projecte.

EMAIL
=====

[](#email)

Per crear un OrderShiped:

```
php artisan make:mail OrderShipped

```

Crear la plantilla amb la que s'envia el mail (markdown)
--------------------------------------------------------

[](#crear-la-plantilla-amb-la-que-senvia-el-mail-markdown)

MAIL EXPLOTACIÓ
===============

[](#mail-explotació)

Des d'explotació s'ha d'enviar correctament el correu al seu destinatari. Es pot usar els següents drivers:

- Si s'utilitza gmail a username i password s'ha de posar el de gmail.

NOTES
=====

[](#notes)

Amb $browser-&gt;script("es pot executar qualsevol codi JS");

EVENTS
======

[](#events)

VUETIFY
=======

[](#vuetify)

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
? 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** -&gt; calaixera de navegació.

REDIS
=====

[](#redis)

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

###  Health Score

23

—

LowBetter than 27% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity3

Limited adoption so far

Community7

Small or concentrated contributor base

Maturity55

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Unknown

Total

1

Last Release

3093d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/799782b880577dea8770416c6300c9c4a4b7b9e081adba9f04232a2c6f8ffc64?d=identicon)[quimgc](/maintainers/quimgc)

---

Top Contributors

[![quimgc](https://avatars.githubusercontent.com/u/23049484?v=4)](https://github.com/quimgc "quimgc (175 commits)")

---

Tags

frameworklaravel

###  Code Quality

TestsPHPUnit

### Embed Badge

![Health badge](/badges/quimgc-tasks/health.svg)

```
[![Health](https://phpackages.com/badges/quimgc-tasks/health.svg)](https://phpackages.com/packages/quimgc-tasks)
```

###  Alternatives

[unopim/unopim

UnoPim Laravel PIM

9.4k1.8k](/packages/unopim-unopim)[nasirkhan/laravel-starter

A CMS like modular Laravel starter project.

1.4k2.7k](/packages/nasirkhan-laravel-starter)[juzaweb/cms

Juzaweb CMS is a Content Management System (CMS) developed based on Laravel Framework and web platform whose sole purpose is to make your development workflow simple again. Project develop by Juzaweb

187571.2k](/packages/juzaweb-cms)[lms-laravel/lms-laravel

The Laravel Framework.

4981.8k](/packages/lms-laravel-lms-laravel)[codewithdennis/larament

Larament is a time-saving starter kit to quickly launch Laravel 13.x projects. It includes FilamentPHP 5.x pre-installed and configured, along with additional tools and features to streamline your development workflow.

3691.5k](/packages/codewithdennis-larament)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
