Jika Anda pernah menghadiri hackathon sebelumnya, Anda pasti tahu berapa lama waktu yang dibutuhkan untuk memulai sebuah proyek: putuskan apa yang akan dibuat, pilih bahasa pemrograman, pilih kerangka web, pilih kerangka CSS. Beberapa saat kemudian, Anda mungkin memiliki proyek awal di GitHub dan baru setelah itu anggota tim lainnya dapat mulai berkontribusi. Atau bagaimana dengan melakukan sesuatu yang sederhana seperti Masuk dengan autentikasi Facebook ? Anda dapat menghabiskan waktu berjam-jam jika Anda tidak memahami cara kerja OAuth 2.0.
Bahkan jika Anda tidak menggunakan ini untuk hackathon, Laravel Hackathon Starter pasti akan menghemat waktu pengembangan pengembang selama berjam-jam atau bahkan berhari-hari dan dapat berfungsi sebagai panduan pembelajaran bagi pengembang web.
Laravel adalah kerangka aplikasi web dengan sintaksis yang ekspresif dan elegan. Laravel mencoba menghilangkan kesulitan dalam pengembangan dengan memudahkan tugas-tugas umum yang digunakan di sebagian besar proyek web, seperti otentikasi, perutean, sesi, antrian, dan caching.
Laravel Hackathon Starter adalah aplikasi boilerplate yang dikembangkan dengan Laravel 5.2 untuk membuat Anda unggul dalam hackathon.
xcode-select --install )sudo apt-get install build-essentialsudo dnf groupinstall "Development Tools"sudo zypper install --type pattern devel_basisnpm install -g @useoptic/cli (diperlukan untuk dokumentasi otomatis)Catatan: Jika Anda baru mengenal Laravel, saya sarankan untuk menonton screencast Laravel From Scratch oleh Jeffery Way yang mengajarkan Laravel 5 dari awal. Alternatifnya, berikut adalah tutorial bagus lainnya untuk membuat aplikasi manajemen proyek untuk pemula/pengembang menengah - Cara membuat aplikasi manajemen proyek di 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 servePertama, download Laravel Hackathon Starter Pack Installer menggunakan Composer:
composer global require "unicodeveloper/hackathon-installer"
Pastikan untuk menempatkan direktori ~/.composer/vendor/bin (atau direktori yang setara untuk OS Anda) di PATH Anda sehingga larathon yang dapat dieksekusi dapat ditemukan oleh sistem Anda.
Setelah terinstal, perintah larathon new akan membuat instalasi Laravel Hackathon Starter Pack baru di direktori yang Anda tentukan. Misalnya, larathon new mvp akan membuat direktori bernama mvp yang berisi instalasi Laravel Hackathon Starter Pack baru dengan semua dependensinya sudah terinstal. Cara instalasi ini jauh lebih cepat dibandingkan menginstal melalui Composer:
larathon new mvp
Alternatifnya, Anda juga dapat menginstal Laravel Hackathon Starter Pack dengan mengeluarkan perintah Composer create-project di terminal Anda:
composer create-project --prefer-dist unicodeveloper/laravel-hackathon-starter hotel
Paket perdana ini mencakup API berikut. Anda perlu mendapatkan kredensial yang sesuai seperti ID Klien, rahasia zClient, kunci API, atau Nama Pengguna & Kata Sandi dengan mengunjungi setiap penyedia dan membuat kredensial baru.
.env Catatan: Saat Anda siap menerapkan ke produksi jangan lupa untuk menambahkan url baru Anda ke Asal Javascript Resmi dan URI pengalihan Resmi , misalnya http://my-awesome-app.herokuapp.com dan http://my-awesome-app.herokuapp.com/auth/google/callback masing-masing. Hal yang sama berlaku untuk penyedia lainnya.
.envhttp://localhost:3000 di bawah URL Situs Catatan: Setelah berhasil masuk dengan Facebook, pengguna akan diarahkan kembali ke halaman beranda dengan tambahan hash #_=_ di URL. Ini bukan bug. Lihat diskusi Stack Overflow ini untuk mengetahui cara menanganinya.
.env.envr_basicprofile.env.env.env.env.env.env.env.env.env.env jalankan php artisan vendor:publish
| Nama | Keterangan |
|---|---|
| config /app.php | Konfigurasi untuk penyedia layanan dan fasad |
| config /auth.php | Konfigurasi untuk pengaturan ulang kata sandi |
| config /broadcasting.php | Konfigurasi untuk penyiaran |
| config /cache.php | Konfigurasi untuk pembuatan dan penyimpanan cache |
| config /cloudder.php | Konfigurasi untuk cloudinary |
| config /kompilasi.php | Konfigurasi untuk kompilasi |
| config /database.php | Konfigurasi untuk driver database |
| konfigurasi /filesystems.php | Konfigurasi untuk sistem file yang berbeda |
| konfigurasi /github.php | Konfigurasi untuk API github |
| config /mail.php | Konfigurasi untuk email |
| config /antrian.php | Konfigurasi untuk antrian |
| konfigurasi /services.php | Konfigurasi untuk beberapa layanan seperti mailgun dll. |
| config /sesi.php | Konfigurasi untuk sesi |
| konfigurasi /ttwitter.php | File konfigurasi Twitter API |
| konfigurasi /twilio.php | File konfigurasi Twilio API |
| config /lihat.php | Konfigurasi untuk lokasi tampilan dan cache tampilan |
| pengontrol /AccountController.php | Pengontrol untuk manajemen Akun |
| pengontrol /AviaryController.php | Pengontrol untuk fungsionalitas Aviary API |
| pengontrol /ClockworkController.php | Pengontrol untuk fungsionalitas Clockwork API |
| pengontrol /ContactController.php | Pengontrol untuk halaman Kontak |
| pengontrol /Controller.php | Pengontrol Basis |
| pengontrol /GithubController.php | Pengontrol untuk fungsionalitas Github API |
| pengontrol /LastFmController.php | Pengontrol untuk fungsionalitas API LastFM |
| pengontrol /LobController.php | Pengontrol untuk fungsionalitas Lob API. |
| pengontrol /NytController.php | Pengontrol untuk fungsionalitas New York Times API |
| pengontrol /OauthController.php | Pengontrol untuk Oautentikasi |
| pengontrol /PaypalController.php | Pengontrol untuk fungsionalitas API Paypal |
| pengontrol /SteamController.php | Pengontrol untuk fungsionalitas Stream API |
| pengontrol /StripeController.php | Pengontrol untuk fungsionalitas Stripe API |
| pengontrol /TwilioController.php | Pengontrol untuk fungsionalitas Twilio API |
| pengontrol /TwitterController.php | Pengontrol untuk fungsionalitas Twitter API |
| pengontrol /WebScrapingController.php | Pengontrol untuk Pengikisan Web. |
| pengontrol /YahooController.php | Pengontrol untuk fungsionalitas Yahoo API |
| pengontrol /user.js | Pengontrol untuk manajemen akun pengguna. |
| model /Pengguna.php | Model untuk Pengguna. |
| publik / | Aset statis (font, css, js, img). |
| publik / css /main.css | Stylesheet utama untuk aplikasi Anda. |
| sumber daya/tampilan/akun / | Templat untuk login, pengaturan ulang kata sandi, pendaftaran, profil . |
| tampilan/api / | Templat untuk Contoh API. |
| tampilan/sebagian /alerts.blade.php | Pemberitahuan kesalahan, info dan sukses flash. |
| tampilan/sebagian /navbar.blade.php | Templat parsial Navbar. |
| dilihat /tata letak**/master.blade.php | Templat dasar. |
| dilihat /apidashboard.blade.php | Templat dasbor API. |
| dilihat /kontak.blade.php | Templat halaman kontak. |
| dilihat /selamat datang.blade.php | Templat halaman beranda. |
| .travis.yml | Integrasi Travis CI. |
| .env.contoh | Kunci API, token, kata sandi, dan URI basis data Anda. |
| komposer.json | File untuk memuat semua paket php. |
| paket.json | File untuk memuat semua modul node yang diperlukan. |
| tukang | File untuk mengaktifkan perintah agar dijalankan |
| Kemasan | Keterangan |
|---|---|
| sosialita | Masuk dengan Facebook, Twitter, dan Github |
| penyedia sosialita | Masuk dengan LinkedIn, Instagram |
| lebih keruh | Unggah gambar ke Cloudinary |
| laravel github | Perpustakaan API Github |
| mesin jam | Pustaka API SMS jarum jam. |
| asam urat | Mengikis halaman web menggunakan sintaks gaya jQuery. |
| kerangka laravel | Kerangka web PHP |
| Perpustakaan API Twitter | |
| twilio | Perpustakaan Twilio API |
| lob-php | Perpustakaan Lob API |
| lastfm-api-wrapper | Pustaka API Lastfm |
| unit php | Perpustakaan pengujian PHP |
| membuang waktuhttp | Pustaka Permintaan HTTP yang disederhanakan |
Dengan menggunakan Optic, Anda dapat menggunakan API seperti biasa, secara otomatis mendokumentasikan perubahan perilaku. Untuk mengaktifkan ini, Anda harus mengunduh Optic terlebih dahulu.
npm install -g @useoptic/cli Setelah Anda menginstal Optic, Anda dapat mulai mendokumentasikan permintaan Anda dengan menjalankan api start . Menjalankan perintah ini akan membuat versi proksi api Anda, tersedia di localhost:4000 - sekarang, Anda dapat menggunakan API seperti biasa di sini, dan Optic akan secara otomatis melihat perbedaan dalam perilaku yang terdokumentasi, memungkinkan Anda membuat dokumentasi secara otomatis saat API Anda berubah .
Untuk melihat dokumentasi api saat ini, jalankan api spec di direktori root.
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 APIUntuk informasi lebih lanjut tentang Optic, lihat dokumen.
Token Mismatch Exception saat mengirimkan formulir?Anda perlu menambahkan elemen input tersembunyi berikut ke formulir Anda. Ini telah ditambahkan dalam basis kode yang ada sebagai bagian dari perlindungan CSRF.
{!! csrf_field() !!}
Kemungkinan Anda belum membuat kunci aplikasi, jadi jalankan php artisan key:generate . Kemungkinan Anda belum memasukkan kredensial Anda ke file .env Anda.
Bagian ini dimaksudkan untuk memberi Anda penjelasan mendetail tentang cara kerja fungsi tertentu. Mungkin Anda hanya penasaran dengan cara kerjanya, atau mungkin Anda tersesat dan bingung saat membaca kodenya, semoga dapat memberikan petunjuk kepada Anda.
Pesan flash memungkinkan Anda menampilkan pesan di akhir permintaan dan mengaksesnya pada permintaan berikutnya dan hanya permintaan berikutnya. Misalnya, pada upaya login yang gagal, Anda akan menampilkan peringatan dengan beberapa pesan kesalahan, namun segera setelah Anda menyegarkan halaman tersebut atau mengunjungi halaman lain dan kembali ke halaman login, pesan kesalahan tersebut akan hilang. Itu hanya ditampilkan sekali. Semua pesan flash tersedia dalam tampilan Anda melalui sesi laravel.
Cara yang lebih tepat adalah dengan mengatakan "Bagaimana cara membuat rute baru". File utama routes.php berisi semua rute. Setiap rute memiliki fungsi panggilan balik yang terkait dengannya. Terkadang Anda akan melihat 3 atau lebih argumen pada rute. Dalam kasus seperti itu, argumen pertama tetap berupa string URL, sedangkan argumen tengah disebut middleware. Bayangkan middleware sebagai sebuah pintu. Jika pintu ini menghalangi Anda untuk melanjutkan, Anda tidak akan mendapatkan fungsi panggilan balik. Salah satu contohnya adalah rute yang memerlukan otentikasi.
Route:: get ( ' /account ' , ' UserController@getAccount ' ); Itu selalu berjalan dari kiri ke kanan. Seorang pengguna mengunjungi halaman /account . Kemudian middleware auth memeriksa apakah Anda diautentikasi:
Route:: get ( ' /account ' , [
' uses ' => ' AccountController@getAccountPage ' ,
' as ' => ' account.dashboard ' ,
' middleware ' => [ ' auth ' ]
]); Jika Anda diautentikasi, Anda membiarkan pengunjung ini melewati "pintu" Anda dengan memanggil return $next($request); di middleware auth dan jika Anda diautentikasi, Anda akan diarahkan ke halaman Manajemen Akun , jika tidak, Anda akan diarahkan ke halaman Login .
Berikut adalah alur kerja umum untuk menambahkan rute baru ke aplikasi Anda. Katakanlah kita sedang membangun sebuah halaman yang berisi daftar semua buku dari database.
Langkah 1. Mulailah dengan menentukan rute.
Route:: get ( ' /books ' , ' BookController@getBooks ' ); Langkah 2. Buat model baru Book.php di dalam direktori aplikasi . Anda cukup menjalankan php artisan make:model Book
namespace App ;
class Book
{
/**
* The attributes that are mass assignable.
*
* @var array
*/
protected $ fillable = [
' name ' , ' isbn ' ,
];
} Langkah 3. Buat file migrasi seperti: 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 ' );
}
} Langkah 4. Buat file pengontrol baru bernama BookController di dalam direktori app/Http/Controllers . Anda cukup menjalankan 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 );
}
} Langkah 5. Buat template 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>
@stopItu saja!
Setelah Anda siap menerapkan aplikasi, Anda perlu membuat akun dengan platform cloud untuk menghostingnya. Ini bukan satu-satunya pilihan, tapi ini adalah pilihan utama saya. Dari pengalaman saya, Heroku adalah cara termudah untuk memulai, penerapan, dan dukungan domain khusus pada akun gratis.
heroku login dan masukkan kredensial Heroku Andaheroku createweb: vendor/bin/heroku-php-nginx public atau web: vendor/bin/heroku-php-apache2 public jika Anda lebih suka menggunakan nginx.heroku addons:add heroku-postgresql:dev untuk menambahkan database Postgres ke aplikasi heroku dari terminal Andagit push heroku master . Selesai!heroku run php artisan migrateCatatan: Untuk menginstal add-on Heroku, akun Anda harus diverifikasi.
git push -f openshift master-f (force) karena OpenShift membuat server tiruan dengan halaman selamat datang saat Anda membuat aplikasi Node.js baru. Melewati tanda -f akan menimpa semuanya dengan repositori proyek Hackathon Starter Anda. Jangan jalankan git pull karena akan menimbulkan konflik penggabungan yang tidak perlu.git remote add azure [Azure Git URL]git push azure masterCatatan: Petunjuk alternatif, termasuk cara menyiapkan proyek dengan alur DevOps tersedia di http://ibm.biz/hackstart. Versi yang lebih panjang dari petunjuk ini beserta tangkapan layar tersedia di http://ibm.biz/hackstart2. Selain itu, pastikan untuk melihat Langsung memulai upaya hackathon Anda dengan Layanan DevOps dan video Bluemix.
Terima kasih telah mempertimbangkan untuk berkontribusi pada Laravel Hackathon Starter. Panduan kontribusi dapat ditemukan di File Kontribusi
Jika Anda menemukan kerentanan keamanan dalam Laravel Hackathon Starter, silakan kirim email ke Prosper Otemuyiwa di [email protected]. Semua kerentanan keamanan akan segera diatasi.
Mengapa tidak membintangi repo github? Saya ingin perhatiannya! Mengapa tidak membagikan tautan repositori ini di Twitter atau HackerNews? Sebarkan beritanya!
Jangan lupa untuk mengikuti saya di twitter!
Terima kasih! Sejahtera Otemuyiwa.
Lisensi MIT (MIT). Silakan lihat File Lisensi untuk informasi lebih lanjut.