Si vous avez déjà participé à des hackathons, vous savez combien de temps il faut pour démarrer un projet : décider de ce qu'il faut construire, choisir un langage de programmation, choisir un framework Web, choisir un framework CSS. Un peu plus tard, vous pourriez avoir un premier projet sur GitHub et ce n'est qu'alors que les autres membres de l'équipe pourront commencer à contribuer. Ou que diriez-vous de faire quelque chose d'aussi simple que de vous connecter avec l'authentification Facebook ? Vous pouvez y passer des heures si vous n'êtes pas familier avec le fonctionnement d'OAuth 2.0.
Même si vous ne l'utilisez pas pour un hackathon, Laravel Hackathon Starter est sûr de faire gagner des heures, voire des jours de développement, aux développeurs et peut servir de guide d'apprentissage pour les développeurs Web.
Laravel est un framework d'application Web avec une syntaxe expressive et élégante. Laravel tente de simplifier le développement en facilitant les tâches courantes utilisées dans la majorité des projets Web, telles que l'authentification, le routage, les sessions, la mise en file d'attente et la mise en cache.
Laravel Hackathon Starter est une application passe-partout développée avec Laravel 5.2 pour vous garder en tête dans les hackathons.
xcode-select --install
)sudo apt-get install build-essential
sudo dnf groupinstall "Development Tools"
sudo zypper install --type pattern devel_basis
npm install -g @useoptic/cli
(nécessaire pour la documentation automatique)Remarque : si vous êtes nouveau sur Laravel, je vous recommande de regarder la capture d'écran Laravel From Scratch de Jeffery Way qui enseigne Laravel 5 à partir de zéro. Alternativement, voici un autre excellent tutoriel pour créer une application de gestion de projet pour les développeurs débutants/intermédiaires - Comment créer une application de gestion de projet dans Laravel 5.
# Get the project
git clone https://github.com/unicodeveloper/laravel-hackathon-starter.git hackathon-starter-pack
# Change directory
cd hackathon-starter-pack
# Copy .env.example to .env
cp .env.example .env
# Create a database (with mysql or postgresql)
# And update .env file with database credentials
# DB_CONNECTION=mysql
# DB_HOST=127.0.0.1
# DB_DATABASE=laravelhackathon
# DB_USERNAME=root
# DB_PASSWORD=root
# Install Composer dependencies
composer install
# Generate application secure key (in .env file)
php artisan key:generate
# Generate application secure key (in .env file)
php artisan key:generate
php artisan serve
Tout d’abord, téléchargez le programme d’installation du Laravel Hackathon Starter Pack à l’aide de Composer :
composer global require "unicodeveloper/hackathon-installer"
Assurez-vous de placer le répertoire ~/.composer/vendor/bin
(ou le répertoire équivalent pour votre système d'exploitation) dans votre PATH afin que l'exécutable larathon
puisse être localisé par votre système.
Une fois installée, la larathon new
créera une nouvelle installation de Laravel Hackathon Starter Pack dans le répertoire que vous spécifiez. Par exemple, larathon new mvp
créera un répertoire nommé mvp
contenant une nouvelle installation de Laravel Hackathon Starter Pack avec toutes ses dépendances déjà installées. Cette méthode d'installation est beaucoup plus rapide que l'installation via Composer :
larathon new mvp
Alternativement, vous pouvez également installer Laravel Hackathon Starter Pack en exécutant la commande Composer create-project
dans votre terminal :
composer create-project --prefer-dist unicodeveloper/laravel-hackathon-starter hotel
Ce pack de démarrage comprend les API suivantes. Vous devrez obtenir les informations d'identification appropriées telles que l'ID client, le secret zClient, la clé API ou le nom d'utilisateur et le mot de passe en passant par chaque fournisseur et en générant de nouvelles informations d'identification.
.env
Remarque : lorsque vous êtes prêt à déployer en production, n'oubliez pas d'ajouter votre nouvelle URL aux origines Javascript autorisées et à l'URI de redirection autorisé , par exemple http://my-awesome-app.herokuapp.com
et http://my-awesome-app.herokuapp.com/auth/google/callback
respectivement. Il en va de même pour les autres fournisseurs.
.env
http://localhost:3000
sous URL du site Remarque : Après une connexion réussie avec Facebook, un utilisateur sera redirigé vers la page d'accueil avec le hachage #_=_
ajouté dans l'URL. Ce n'est pas un bug. Consultez cette discussion sur Stack Overflow pour savoir comment le gérer.
.env
.env
r_basicprofile
.env
.env
.env
.env
.env
.env
.env
.env
.env
.env
exécuter php artisan vendor:publish
Nom | Description |
---|---|
configuration /app.php | Configuration pour prestataires et façades |
configuration /auth.php | Configuration pour la réinitialisation du mot de passe |
config /broadcasting.php | Configuration pour la diffusion |
configuration /cache.php | Configuration pour la génération et le stockage du cache |
config /cloudder.php | Configuration pour le cloud |
configuration /compile.php | Configuration pour la compilation |
configuration / base de données.php | Configuration des pilotes de base de données |
configuration /filesystems.php | Configuration pour différents systèmes de fichiers |
configuration /github.php | Configuration pour l'API github |
configuration /mail.php | Configuration pour les mails |
configuration /queue.php | Configuration de la file d'attente |
configuration /services.php | Configuration pour plusieurs services comme mailgun etc. |
configuration /session.php | Configuration des sessions |
configuration /ttwitter.php | Fichier de configuration de l'API Twitter |
configuration /twilio.php | Fichier de configuration de l'API Twilio |
configuration /view.php | Configuration pour l'emplacement des vues et le cache des vues |
contrôleurs /AccountController.php | Contrôleur de gestion des comptes |
contrôleurs /AviaryController.php | Contrôleur pour la fonctionnalité API Aviary |
contrôleurs /ClockworkController.php | Contrôleur pour la fonctionnalité API Clockwork |
contrôleurs /ContactController.php | Contrôleur pour la page Contact |
contrôleurs /Controller.php | BaseController |
contrôleurs /GithubController.php | Contrôleur pour la fonctionnalité API Github |
contrôleurs /LastFmController.php | Contrôleur pour la fonctionnalité API LastFM |
contrôleurs /LobController.php | Contrôleur pour la fonctionnalité API Lob. |
contrôleurs /NytController.php | Contrôleur pour la fonctionnalité API du New York Times |
contrôleurs /OauthController.php | Contrôleur pour l'authentification O |
contrôleurs /PaypalController.php | Contrôleur pour la fonctionnalité API Paypal |
contrôleurs /SteamController.php | Contrôleur pour la fonctionnalité API Stream |
contrôleurs /StripeController.php | Contrôleur pour la fonctionnalité API Stripe |
contrôleurs /TwilioController.php | Contrôleur pour la fonctionnalité API Twilio |
contrôleurs /TwitterController.php | Contrôleur pour la fonctionnalité de l'API Twitter |
contrôleurs /WebScrapingController.php | Contrôleur pour Web Scraping. |
contrôleurs /YahooController.php | Contrôleur pour la fonctionnalité API Yahoo |
contrôleurs /user.js | Contrôleur pour la gestion des comptes utilisateurs. |
modèles /Utilisateur.php | Modèle pour l'utilisateur. |
publique / | Actifs statiques (polices, css, js, img). |
public / css /main.css | Feuille de style principale de votre application. |
ressources/vues/compte / | Modèles de connexion, de réinitialisation de mot de passe, d'inscription, de profil . |
vues/API / | Modèles pour exemples d'API. |
vues/partiels /alerts.blade.php | Notifications flash d'erreur, d'informations et de réussite. |
vues/partiels /navbar.blade.php | Modèle partiel de barre de navigation. |
vues /layouts**/master.blade.php | Modèle de base. |
vues /apidashboard.blade.php | Modèle de tableau de bord API. |
vues /contact.blade.php | Modèle de page de contact. |
vues /welcome.blade.php | Modèle de page d'accueil. |
.travis.yml | Intégration de Travis CI. |
.env.exemple | Vos clés API, jetons, mots de passe et URI de base de données. |
composer.json | Fichier pour charger tous les packages php. |
package.json | Fichier pour charger tous les modules de nœuds nécessaires. |
artisan | Fichier pour permettre l'exécution des commandes |
Emballer | Description |
---|---|
mondain | Connectez-vous avec Facebook, Twitter et Github |
prestataires mondains | Connectez-vous avec LinkedIn, Instagram |
plus nuageux | Télécharger des images sur Cloudinary |
laravelgithub | Bibliothèque d'API Github |
horlogerie | Bibliothèque API SMS Clockwork. |
goutte | Scrapez les pages Web à l'aide de la syntaxe de style jQuery. |
cadre laravel | Cadre Web PHP |
gazouillement | Bibliothèque d'API Twitter |
twilio | Bibliothèque API Twilio |
lob-php | Bibliothèque d'API métier |
lastfm-api-wrapper | Bibliothèque API Lastfm |
unité php | Bibliothèque de tests PHP |
engloutirhttp | Bibliothèque de requêtes HTTP simplifiée |
En utilisant Optic, vous pouvez utiliser votre API comme d'habitude, en documentant automatiquement les changements de comportement. Pour activer cela, vous devez d'abord télécharger Optic.
npm install -g @useoptic/cli
Une fois que vous avez installé Optic, vous pouvez commencer à documenter vos demandes en exécutant api start
. L'exécution de cette commande créera une version proxy de votre API, disponible sur localhost:4000 - maintenant, vous pouvez utiliser l'API comme d'habitude ici, et Optic remarquera automatiquement les différences dans le comportement documenté, vous permettant de créer automatiquement une documentation à mesure que votre API change. .
Pour afficher la documentation actuelle de l'API, exécutez api spec
dans le répertoire racine.
api start # use this to start monitoring your API
api spec # use this to inspect the current documentation of your API
api generate:oas # generates an OpenAPI specification for your currently documented API
Pour plus d’informations sur Optic, consultez la documentation.
Token Mismatch Exception
lorsque je soumets un formulaire ?Vous devez ajouter l'élément de saisie masqué suivant à votre formulaire. Ceci a été ajouté dans la base de code existante dans le cadre de la protection CSRF.
{!! csrf_field() !!}
Il y a de fortes chances que vous n'ayez pas généré la clé de l'application, alors exécutez php artisan key:generate
. Il est probable que vous n'ayez pas mis vos informations d'identification dans votre fichier .env.
Cette section est destinée à vous donner une explication détaillée du fonctionnement d'une fonctionnalité particulière. Peut-être êtes-vous simplement curieux de savoir comment cela fonctionne, ou peut-être êtes-vous perdu et confus en lisant le code, j'espère qu'il vous fournira des conseils.
Les messages Flash permettent d'afficher un message à la fin de la requête et d'y accéder à la prochaine requête et uniquement à la prochaine requête. Par exemple, en cas d'échec d'une tentative de connexion, vous afficherez une alerte avec un message d'erreur, mais dès que vous actualiserez cette page ou visiterez une autre page et reviendrez à la page de connexion, ce message d'erreur disparaîtra. Il n'est affiché qu'une seule fois. Tous les messages flash sont disponibles dans vos vues via les sessions Laravel.
Une façon plus correcte de dire "Comment créer un nouvel itinéraire". Le fichier principal routes.php
contient toutes les routes. Chaque route est associée à une fonction de rappel. Parfois, vous verrez 3 arguments ou plus pour les itinéraires. Dans de tels cas, le premier argument est toujours une chaîne d'URL, tandis que les arguments intermédiaires sont ce qu'on appelle un middleware. Considérez le middleware comme une porte. Si cette porte vous empêche de continuer, vous n'accéderez pas à votre fonction de rappel. Un tel exemple est une route qui nécessite une authentification.
Route:: get ( ' /account ' , ' UserController@getAccount ' );
Cela va toujours de gauche à droite. Un utilisateur visite la page /account
. Ensuite, le middleware d' auth
vérifie si vous êtes authentifié :
Route:: get ( ' /account ' , [
' uses ' => ' AccountController@getAccountPage ' ,
' as ' => ' account.dashboard ' ,
' middleware ' => [ ' auth ' ]
]);
Si vous êtes authentifié, vous laissez ce visiteur passer votre « porte » en appelant return $next($request);
dans le middleware d'authentification et si vous êtes authentifié, vous serez redirigé vers la page de gestion du compte , sinon vous serez redirigé vers la page de connexion .
Voici un flux de travail typique pour ajouter de nouveaux itinéraires à votre application. Disons que nous construisons une page qui répertorie tous les livres de la base de données.
Étape 1. Commencez par définir un itinéraire.
Route:: get ( ' /books ' , ' BookController@getBooks ' );
Étape 2. Créez un nouveau modèle Book.php
dans le répertoire de l'application . Vous pouvez simplement exécuter php artisan make:model Book
namespace App ;
class Book
{
/**
* The attributes that are mass assignable.
*
* @var array
*/
protected $ fillable = [
' name ' , ' isbn ' ,
];
}
Étape 3. Créez un fichier de migration comme ceci : php artisan make:migration create_books_table
use Illuminate Database Schema Blueprint ;
use Illuminate Database Migrations Migration ;
class CreateBooksTable extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up ()
{
Schema:: create ( ' books ' , function ( Blueprint $ table ) {
$ table -> increments ( ' id ' );
$ table -> string ( ' name ' );
$ table -> string ( ' isbn ' );
$ table -> timestamps ();
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down ()
{
Schema:: drop ( ' books ' );
}
}
Étape 4. Créez un nouveau fichier de contrôleur appelé BookController
dans le répertoire app/Http/Controllers . Vous pouvez simplement exécuter php artisan make:controller BookController
namespace App Http Controllers ;
use Illuminate Http Request ;
use App Book ;
use App Http Requests ;
use App Http Controllers Controller ;
class BookController extends Controller
{
/**
* Return all books
* @return mixed
*/
public function getBooks ()
{
$ books = Book:: all ();
return view ( ' books ' )-> withBooks ( $ books );
}
}
Étape 5. Créez le modèle books.blade.php
.
@ extends ( ' layouts.master ' )
@ section ( ' content ' )
<div class="main-container">
@ include ( ' layouts.partials.alerts ' )
<div class="page-header">
<h2><i style="color: #f00 " class=" fa fa - book"></i>All Books</h2>
</div>
<ul>
@ foreach ( $ books as $ book )
<li> {{ $ book -> name }} </li>
@endforeach
</div>
</div>
@stop
C'est ça!
Une fois que vous êtes prêt à déployer votre application, vous devrez créer un compte sur une plateforme cloud pour l'héberger. Ce ne sont pas les seuls choix, mais ce sont mes meilleurs choix. D'après mon expérience, Heroku est le plus simple pour démarrer, les déploiements et la prise en charge de domaines personnalisés sur les comptes gratuits.
heroku login
et entrez vos informations d'identification Heroku.heroku create
web: vendor/bin/heroku-php-nginx public
ou web: vendor/bin/heroku-php-apache2 public
si vous préférez utiliser nginx.heroku addons:add heroku-postgresql:dev
pour ajouter une base de données Postgres à votre application heroku depuis votre terminalgit push heroku master
. Fait!heroku run php artisan migrate
Remarque : Pour installer les modules complémentaires Heroku, votre compte doit être vérifié.
git push -f openshift master
-f
(force) car OpenShift crée un serveur factice avec la page d'accueil lorsque vous créez une nouvelle application Node.js. Passer l'indicateur -f
remplacera tout ce qui concerne le référentiel de votre projet Hackathon Starter . N'exécutez pas git pull
car cela créerait des conflits de fusion inutiles.git remote add azure [Azure Git URL]
git push azure master
Remarque : Des instructions alternatives, notamment comment configurer le projet avec un pipeline DevOps, sont disponibles sur http://ibm.biz/hackstart. Une version plus longue de ces instructions avec des captures d'écran est disponible sur http://ibm.biz/hackstart2. N'oubliez pas non plus de consulter la vidéo Démarrez vos efforts de hackathon avec DevOps Services et Bluemix.
Merci d'avoir envisagé de contribuer au Laravel Hackathon Starter. Le guide de contribution est à retrouver dans le Dossier de Contribution
Si vous découvrez une vulnérabilité de sécurité dans Laravel Hackathon Starter, veuillez envoyer un e-mail à Prosper Otemuyiwa à [email protected]. Toutes les vulnérabilités de sécurité seront rapidement corrigées.
Pourquoi ne pas mettre en vedette le dépôt github ? J'adorerais l'attention ! Pourquoi ne pas partager le lien de ce référentiel sur Twitter ou HackerNews ? Faites passer le mot !
N'oubliez pas de me suivre sur Twitter !
Merci! Prospérer Otemuyiwa.
La licence MIT (MIT). Veuillez consulter le fichier de licence pour plus d'informations.