Outils pour utilisateurs

Outils du site


devweb:laravel:start (lu 23673 fois)

Différences

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

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
devweb:laravel:start [25-01-2014 16:01]
edmc73
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> <note important>ATTENTION au pluriel et singulier !!!</note>
  
Ligne 20: 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 71: 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.1390662088.txt.gz · Dernière modification: 25-01-2014 16:01 de edmc73