Diferència entre revisions de la pàgina «Laravel»

De Cacauet Wiki
Salta a la navegació Salta a la cerca
Línia 44: Línia 44:
 
  https://ajgallego.gitbooks.io/laravel-5/content/index.html
 
  https://ajgallego.gitbooks.io/laravel-5/content/index.html
  
Igualment, podríem trobar algunes incidències:
+
Igualment, podríem trobar algunes incidències. Us dono pistes:
* Al pujar el projecte a un repo GIT, i clonar-lo després caldrà:
+
 
*# Re-instal·lar les dependències:<pre>$ composer install</pre>
+
=== Treballant amb GIT i clonant ===
*# Regenerar arxiu <code>.env</code> : com que depèn de cada entorn no es fica al projecte (es posa a <code>.gitignore</code>), però pots copiar i modificar de <code>.env.example</code>
+
Al pujar el projecte a un repo GIT, i clonar-lo després caldrà:
*# Error ''The only supported ciphers are AES-128-CBC and AES-256-CBC with the correct key lengths.'' Es soluciona amb :<pre>$ php artisan key:generate</pre>
+
# Re-instal·lar les dependències:<pre>$ composer install</pre>
* Per crear un controller complert, és més simple si ho fem com a RESOURCE. Ens crearà tots els mètodes i les rutes necessàries per a un CRUD.
+
# Regenerar arxiu <code>.env</code> : com que depèn de cada entorn no es fica al projecte (es posa a <code>.gitignore</code>), però pots copiar i modificar de <code>.env.example</code>
*# Ja no es pot fer amb <strike><code>Route::controller</code></strike> sinó amb:<pre>Route::resource("cosa","CosaController");</pre>
+
# Error ''The only supported ciphers are AES-128-CBC and AES-256-CBC with the correct key lengths.'' Es soluciona amb :<pre>$ php artisan key:generate</pre>
*# Per exemple, per crear un controller per al model "Cosa" ho faríem amb -r (de resource): <pre>$ php artisan make:controller -r CosaController</pre>
+
 
* ...
+
=== Creant controllers ===
 +
Per crear un controller complert, és més simple si ho fem com a RESOURCE. Ens crearà tots els mètodes i les rutes necessàries per a un CRUD.
 +
# Ja no es pot fer amb <strike><code>Route::controller</code></strike> sinó amb:<pre>Route::resource("cosa","CosaController");</pre>
 +
# Per exemple, per crear un controller per al model "Cosa" ho faríem amb -r (de resource): <pre>$ php artisan make:controller -r CosaController</pre>
 +
 
 +
=== Treballant amb SQLITE ===
 +
Per configurar la BD amb SQLITE cal crear el fitxer abans amb:
 +
$ touch db.sqlite
 +
Configurar la BD a .env:
 +
DB_CONNECTION=sqlite
 +
DB_DATABASE=db.sqlite
 +
I creant la BD inicial amb:
 +
$ php artisan migrate:install
  
 
<br>
 
<br>

Revisió del 18:34, 30 gen 2017

Intro i referències

Laravel és un framework web per a PHP que està agafant molta força.

Tutorials:

Plugins:

Referències:


Instal·lació i setup

Instal·lació: https://laravel.com/docs/5.3/installation

Prerequisits:

Anem a posar-nos-hi. Utilitzarem Laravel v. 5.3, tot i que en futures versions les passes no haurien de diferir molt (però ho fan):

  1. Instal·la el gestor de paquets COMPOSER.
  2. Instal·la Laravel 5.3.
    Laravel s'instal·la a $HOME/.composer però per poder executar les properes comandes necessitarem tenir $HOME/.composer/vendor/bin al nostre $PATH. Inserta això al teu $HOME/.profile:
    PATH=$PATH:~/.composer/vendor/bin
  3. Crea una app Laravel allà on et faci més ràbia:
    $ laravel new laravelapp1
    o també:
    $ composer create-project --prefer-dist laravel/laravel laravelapp1
  4. Arrenca l'aplicació de prova:
    $ php artisan serve
  5. Comprova la app amb el navegador a
    http://localhost:8000


Seguint el tutorial i treballant amb GIT

Aquest és un bon tutorial:

https://ajgallego.gitbooks.io/laravel-5/content/index.html

Igualment, podríem trobar algunes incidències. Us dono pistes:

Treballant amb GIT i clonant

Al pujar el projecte a un repo GIT, i clonar-lo després caldrà:
  1. Re-instal·lar les dependències:
    $ composer install
  2. Regenerar arxiu .env : com que depèn de cada entorn no es fica al projecte (es posa a .gitignore), però pots copiar i modificar de .env.example
  3. Error The only supported ciphers are AES-128-CBC and AES-256-CBC with the correct key lengths. Es soluciona amb :
    $ php artisan key:generate

Creant controllers

Per crear un controller complert, és més simple si ho fem com a RESOURCE. Ens crearà tots els mètodes i les rutes necessàries per a un CRUD.

  1. Ja no es pot fer amb Route::controller sinó amb:
    Route::resource("cosa","CosaController");
  2. Per exemple, per crear un controller per al model "Cosa" ho faríem amb -r (de resource):
    $ php artisan make:controller -r CosaController

Treballant amb SQLITE

Per configurar la BD amb SQLITE cal crear el fitxer abans amb:

$ touch db.sqlite

Configurar la BD a .env:

DB_CONNECTION=sqlite
DB_DATABASE=db.sqlite

I creant la BD inicial amb:

$ php artisan migrate:install


Ficant-nos en matèria

Ja hem fet la presa de contacte. Ara procedim a crear la nostra app. Això inclourà:

  1. Crear Routes (a /routes/)
  2. Crear Views (a /resources/views)
    • Consulta els apartats de VIEWS & TEMPLATES de la doc.
    • Crea una view i crida-la des d'una ruta.
    • Posa a la view Benvingut {{$nom}},, i introdueix el teu nom des de la ruta (hardcoded).
    • Per passar paràmetres a la pàgina, consulta la secció REQUESTS de la documentació.
    • Passa un paràmetre "nom" per GET (http://localhost/ruta/?nom=manolo , per exemple) i captura-la des da la ruta i introdueix-la a la view.
  3. Crear Models (a /app)
    • Laravel utilitza Eloquent ORM. Recordem que un ORM és un Object-Relational Model, una sèrie d'utilitats que ens ajudaran a gestionar l'accés a la base de dades i els models d'objectes que hi guardarem.
    • Configurar la connexió a la BD en .env tal i com indica la doc (en algun lloc diu que es configura a config/database.php, però és millor fer-ho a .env)
    • Segueix el Eloquent Quickstart i defineix els models de la teva app. Tingues en compte:
      • A l'exemple que surt (User model) ja està creat i et donarà un error. Crea un altre objecte diferent.
      • A diferència de Django, al model només es defineixen els atributs però sense especificar de quin tipus son (integers, varchars, etc.). Això darrer ho farem en el següent pas: la migració.
    • Migrar els models a la BD.
      Tal com hem dit, en aquest pas caldrà definir el tipus de dades de l'objecte.
      Es recomana configurar la DB amb sqlite els primers cops per provar, és més senzill. Si et dóna un error que 'db.sqlite' no existeix, simplement fes primer:
      $ touch db.sqlite
  4. Utilitzar els models a les views
    • Crea una ruta que afegeixi instàncies hardcoded, és a dir, que faci un new del objecte i els guardi amb save.
    • Crida aquesta ruta diversos cops per ficar les dades dins la BD.
    • Fes ara una view que llisti els continguts dels objectes que has creat. Necessitaràs aconseguir una col·lecció sencera dels items (mira l'apartat de Eloquent ORM) i també com fer loops dins de les views.
  5. Crea Controllers
    • ...


Laravel en producció

...