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-essential
sudo dnf groupinstall "Development Tools"
sudo zypper install --type pattern devel_basis
npm 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 serve
Pertama, 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.
.env
http://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
.env
r_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 API
Untuk 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>
@stop
Itu 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 create
web: 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 migrate
Catatan: 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 master
Catatan: 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.