Outils pour utilisateurs

Outils du site


devweb:laravel:start (lu 23675 fois)

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Prochaine révision
Révision précédente
devweb:laravel:start [25-01-2014 16:00]
edmc73 créée
devweb:laravel:start [10-09-2017 18:18] (Version actuelle)
edmc73
Ligne 1: Ligne 1:
 ====== Laravel ====== ====== Laravel ======
 +
 +===== Documentation =====
 +
 +  * https://laravel.com
 +
 +
 +Tuto en français
 +
 +  * http://laravel.sillo.org/laravel-5/
 +  * https://www.grafikart.fr/formations/laravel
 +
 +===== Installation =====
 +
 +
 +FIXME
 +La dernière version 4.2 bug sous chrome et je n'ai pas trouvé de solution pour que ça marche, il faut donc forcer l'installation de la version 4.1 avec la commande
 +  composer.phar create-project laravel/laravel=4.1.* nom-du-projet --prefer-dist
 +
 +===== Problème du début =====
 +
 +Sur une mariaDB, l'erreur suivante sur une migration
 +<code>
 + [Illuminate\Database\QueryException]
 +  SQLSTATE[42000]: Syntax error or access violation: 1071 Specified key was too long; max key length is 767 bytes (SQL: alter table `users` add unique `users_email_unique`(`email`))
 +
 +
 +
 +  [PDOException]
 +  SQLSTATE[42000]: Syntax error or access violation: 1071 Specified key was too long; max key length is 767 bytes
 +</code>
 +Ajuster le **app/Providers/AppServiceProvider.php**
 +<code php>
 +use Illuminate\Support\Facades\Schema;
 +
 +public function boot()
 +{
 +    Schema::defaultStringLength(191);
 +}
 +</code>
 +
  
  
 ===== Convention de nommage ===== ===== Convention de nommage =====
 +Laravel Schema Designer => http://www.laravelsd.com/ permet de créer des bases de données avec la souris puis de télécharger les fichiers de model, view et schema.
 +
 +<note important>ATTENTION au pluriel et singulier !!!</note>
  
 Pour que tout se passe bien, nommé vos tables au pluriel, vos modèles au singulier, votre id doit s'appeler id... Pour que tout se passe bien, nommé vos tables au pluriel, vos modèles au singulier, votre id doit s'appeler id...
Ligne 19: Ligne 62:
 Champ: id, article_id, user_id, contenu...</code> Champ: id, article_id, user_id, contenu...</code>
  
 +Si on veut faire une table pivot, on nomme la table par ordre alphabétique du nom au singulier des deux tables concernées et elle doit contenir les 2 clés étrangères correspondantes
 +<code>Table: article_commentaire
 +Champ: article_id, commentaire_id</code>
 +
 +
 +D'autres explications et schéma par là => http://laravel.sl-creation.org/laravel-4-chapitre-33-les-relations-avec-eloquent-1/
  
 ===== Models et relation ===== ===== Models et relation =====
Ligne 70: Ligne 119:
 } }
 </code> </code>
 +
 +===== Ajouter ses class ou fonctions =====
 +
 +Créez un fichier **helpers.php** dans par exemple **app/** puis ajoutez-le dans le **app/Providers/AppServiceProvider.php**
 +
 +
 +<code php>
 +<?php
 +
 +namespace App\Providers;
 +
 +use Illuminate\Support\ServiceProvider;
 +
 +class AppServiceProvider extends ServiceProvider
 +{
 +    /**
 +     * Bootstrap any application services.
 +     *
 +     * @return void
 +     */
 +    public function boot()
 +    {
 +        require_once(app_path().'/helpers.php');
 +    }
 +
 +    /**
 +     * Register any application services.
 +     *
 +     * @return void
 +     */
 +    public function register()
 +    {
 +        //
 +    }
 +}
 +
 +
 +</code>
 +
 +
 +
 +
 +Pour ajouter un répertoire contenant des fichiers de class, Créez par exemple un dossier **app\MyClass** et posez votre fichier de class suivant la norme psr-4
 +
 +exemple : 
 +  vi app/MyClass/MaClass.php
 +
 +<code php>
 +<?php
 +
 +// important !
 +namespace App\MyClass;
 +
 +// le nom de la class doit être le même que le nom du fichier
 +class MaClass
 +{
 +
 +}
 +
 +/*
 +Pour utiliser cette class dans un autre fichier, ajoutez
 +use App\MyClass\MaClass;
 +*/
 +</code>
 +===== Mettre en français strftime =====
 +
 +Ajoutez dans la fonction boot **app/Providers/AppServiceProvider.php**
 +  setlocale(LC_ALL, 'fr_FR.UTF-8');
 +
 +Même remarque pour mettre Carbon en français
 +  Carbon::setLocale(config('app.locale'));
 +
 +La config app.locale doit être à **fr**
 +===== Intégrer le framework en dehors de public =====
 +
 +<code php>
 +// Intégration du framework
 +require __DIR__.'/bootstrap/autoload.php';
 +$app = require_once __DIR__.'/bootstrap/start.php';
 +</code>
 +
 +  
devweb/laravel/start.1390662050.txt.gz · Dernière modification: 25-01-2014 16:00 de edmc73