如果您過去參加過任何黑客馬拉松,那麼您就會知道啟動專案需要多少時間:決定要建立什麼、選擇程式語言、選擇 Web 框架、選擇 CSS 框架。一段時間後,您可能在 GitHub 上有了一個初始項目,然後其他團隊成員才能開始貢獻。或者做一些像是使用 Facebook 身份驗證登入這樣簡單的事情呢?如果您不熟悉 OAuth 2.0 的工作原理,您可以花幾個小時來了解它。
即使您不將其用於黑客馬拉松,Laravel Hackathon Starter 也一定會節省開發人員數小時甚至數天的開發時間,並且可以作為 Web 開發人員的學習指南。
Laravel 是一個具有表現力、優雅語法的 Web 應用程式框架。 Laravel 試圖透過簡化大多數 Web 專案中使用的常見任務(例如驗證、路由、會話、佇列和快取)來消除開發的痛苦。
Laravel Hackathon Starter 是一個使用 Laravel 5.2 開發的樣板應用程序,可讓您在黑客馬拉松中保持領先。
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
(自動文件需要)注意:如果您是 Laravel 新手,我建議您觀看 Jeffery Way 製作的 Laravel From Scratch 截圖視頻,該視頻從頭開始教授 Laravel 5。或者,這裡還有另一個為初學者/中級開發人員建立專案管理應用程式的精彩教學 - 如何在 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
首先,使用 Composer 下載 Laravel Hackathon Starter Pack 安裝程式:
composer global require "unicodeveloper/hackathon-installer"
確保將~/.composer/vendor/bin
目錄(或作業系統的等效目錄)放在 PATH 中,以便系統可以找到larathon
可執行檔。
安裝後, larathon new
指令將在您指定的目錄中建立新的 Laravel Hackathon Starter Pack 安裝。例如, larathon new mvp
將建立一個名為mvp
的目錄,其中包含新的 Laravel Hackathon Starter Pack 安裝以及已安裝的所有相依性。這種安裝方法比透過 Composer 安裝快得多:
larathon new mvp
或者,您也可以透過在終端機中發出 Composer create-project
指令來安裝 Laravel Hackathon Starter Pack:
composer create-project --prefer-dist unicodeveloper/laravel-hackathon-starter hotel
此入門包包含以下 API。您將需要透過每個提供者取得適當的憑證,例如用戶端 ID、zClient 金鑰、API 金鑰或使用者名稱和密碼,並產生新的憑證。
.env
中注意:當您準備部署到生產環境時,請不要忘記將新網址新增至Authorized Javascript origins和Authorized redirect URI ,例如http://my-awesome-app.herokuapp.com
和http://my-awesome-app.herokuapp.com/auth/google/callback
分別為http://my-awesome-app.herokuapp.com/auth/google/callback
。其他提供者也是如此。
.env
中http://localhost:3000
注意:成功登入 Facebook 後,使用者將被重定向回主頁,並在 URL 中附加哈希#_=_
。這不是一個錯誤。有關處理方法,請參閱 Stack Overflow 討論。
.env
檔案中.env
檔中r_basicprofile
.env
檔中.env
檔案中.env
檔案中.env
檔案中.env
檔中.env
檔案中.env
檔案中.env
檔案中.env
檔案中.env
檔案中運行php artisan vendor:publish
姓名 | 描述 |
---|---|
配置/app.php | 服務提供者和外觀的配置 |
配置/auth.php | 密碼重置配置 |
配置/廣播.php | 廣播配置 |
配置/快取.php | 快取生成和儲存的配置 |
配置/cloudder.php | cloudinary的配置 |
配置/編譯.php | 編譯配置 |
配置/database.php | 資料庫驅動程式的配置 |
設定/檔案系統.php | 不同檔案系統的配置 |
配置/github.php | github API 的配置 |
配置/mail.php | 郵件配置 |
配置/queue.php | 隊列配置 |
配置/services.php | 多種服務的配置,如 mailgun 等。 |
配置/session.php | 會話配置 |
配置/ttwitter.php | Twitter API 設定文件 |
配置/twilio.php | Twilio API 設定檔 |
配置/view.php | 視圖位置和視圖快取的配置 |
控制器/AccountController.php | 帳戶管理控制器 |
控制器/AviaryController.php | Aviary API 功能的控制器 |
控制器/ClockworkController.php | Clockwork API 功能的控制器 |
控制器/ContactController.php | 聯絡頁面控制器 |
控制器/Controller.php | 基礎控制器 |
控制器/GithubController.php | Github API 功能的控制器 |
控制器/LastFmController.php | LastFM API 功能的控制器 |
控制器/LobController.php | Lob API 功能的控制器。 |
控制器/NytController.php | 紐約時報 API 功能的控制器 |
控制器/OauthController.php | 認證控制器 |
控制器/PaypalController.php | Paypal API 功能的控制器 |
控制器/SteamController.php | Stream API 功能的控制器 |
控制器/StripeController.php | Stripe API 功能的控制器 |
控制器/TwilioController.php | Twilio API 功能的控制器 |
控制器/TwitterController.php | Twitter API 功能的控制器 |
控制器/WebScrapingController.php | 網頁抓取控制器。 |
控制器/YahooController.php | Yahoo API 功能的控制器 |
控制器/user.js | 使用者帳號管理的控制器。 |
模型/User.php | 使用者模型。 |
民眾/ | 靜態資源(字體、css、js、img)。 |
公共/CSS/main.css | 您的應用程式的主樣式表。 |
資源/瀏覽量/帳戶/ | 登入、密碼重設、註冊、個人資料範本。 |
視圖/api / | API 範例範本。 |
視圖/部分/alerts.blade.php | 錯誤、訊息和成功閃爍通知。 |
視圖/部分/navbar.blade.php | 導覽列部分模板。 |
視圖/layouts**/master.blade.php | 基礎模板。 |
視圖/apidashboard.blade.php | API 儀表板範本。 |
視圖/contact.blade.php | 聯絡頁面模板。 |
視圖/welcome.blade.php | 主頁模板。 |
.travis.yml | Travis CI 整合。 |
.env.example | 您的 API 金鑰、令牌、密碼和資料庫 URI。 |
作曲家.json | 用於載入所有 php 套件的檔案。 |
包.json | 用於載入所有必要的節點模組的檔案。 |
工匠 | 用於啟用命令運行的文件 |
包裹 | 描述 |
---|---|
社會名流 | 使用 Facebook、Twitter 和 Github 登錄 |
社群名流提供者 | 使用 LinkedIn、Instagram 登入 |
雲德 | 將圖像上傳到 Cloudinary |
Laravel github | Github API 函式庫 |
發條 | Clockwork簡訊API庫。 |
古特 | 使用 jQuery 風格的語法抓取網頁。 |
Laravel 框架 | PHP 網路框架 |
嘰嘰喳喳 | 推特 API 函式庫 |
特威利奧 | Twilio API 庫 |
lob-php | 洛布 API 函式庫 |
Lastfm-api-包裝器 | Lastfm API 函式庫 |
php單元 | PHP 測試函式庫 |
狂飲http | 簡化的 HTTP 請求庫 |
使用 Optic,您可以像平常一樣使用 API,自動記錄行為變化。若要啟用此功能,您首先需要下載 Optic。
npm install -g @useoptic/cli
安裝 Optic 後,您可以透過執行api start
開始記錄您的請求。執行此命令將建立 api 的代理版本,可在 localhost:4000 上使用 - 現在,您可以像平常一樣使用該 API,Optic 將自動注意到記錄行為中的差異,允許您在 API 變更時自動建立文件。
若要查看 api 的目前文檔,請在根目錄下執行api spec
。
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
有關光學的更多信息,請查看文檔。
Token Mismatch Exception
?您需要將以下隱藏輸入元素新增到您的表單中。這已作為 CSRF 保護的一部分添加到現有程式碼庫中。
{!! csrf_field() !!}
您可能尚未產生應用程式金鑰,因此請執行php artisan key:generate
。您可能尚未將憑證放入 .env 檔案中。
本節旨在為您詳細解釋特定功能的工作原理。也許你只是好奇它是如何運作的,或者也許你在閱讀程式碼時迷失和困惑,我希望它能為你提供一些指導。
Flash 訊息可讓您在請求末尾顯示一則訊息,並在下一個請求且僅在下一個請求時存取它。例如,在登入嘗試失敗時,您將顯示帶有一些錯誤訊息的警報,但是一旦您重新整理該頁面或造訪不同的頁面並返回登入頁面,該錯誤訊息就會消失。它只顯示一次。所有 Flash 訊息都可以透過 Laravel 會話在您的檢視中取得。
更正確的說法是「如何創建新路線」。主檔案routes.php
包含所有路由。每個路由都有一個與其關聯的回呼函數。有時您會看到 3 個或更多路由參數。在這種情況下,第一個參數仍然是 URL 字串,而中間參數就是所謂的中間件。將中間件視為一扇門。如果這扇門阻止您繼續前進,您將無法到達回呼函數。一個這樣的範例是需要身份驗證的路由。
Route:: get ( ' /account ' , ' UserController@getAccount ' );
它總是從左到右。使用者造訪/account
頁面。然後auth
中間件檢查您是否已通過身份驗證:
Route:: get ( ' /account ' , [
' uses ' => ' AccountController@getAccountPage ' ,
' as ' => ' account.dashboard ' ,
' middleware ' => [ ' auth ' ]
]);
如果您通過了身份驗證,則可以透過呼叫return $next($request);
讓該訪客通過您的「門」;在身份驗證中間件中,如果您通過身份驗證,您將被重新導向至帳戶管理頁面,否則您將被重新導向到登入頁面。
以下是向應用程式新增路由的典型工作流程。假設我們正在建立一個列出資料庫中所有書籍的頁面。
步驟 1.首先定義路線。
Route:: get ( ' /books ' , ' BookController@getBooks ' );
步驟2.在app目錄中建立一個新模型Book.php
。您可以簡單地運行php artisan make:model Book
namespace App ;
class Book
{
/**
* The attributes that are mass assignable.
*
* @var array
*/
protected $ fillable = [
' name ' , ' isbn ' ,
];
}
步驟 3.建立一個遷移文件,如下所示: 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 ' );
}
}
步驟 4.在app/Http/Controllers目錄中建立一個名為BookController
的新控制器檔案。您只需運行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 );
}
}
步驟 5.建立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
就是這樣!
準備好部署應用程式後,您將需要使用雲端平台建立帳戶來託管它。這些不是唯一的選擇,但它們是我的首選。根據我的經驗, Heroku是最容易上手、免費帳戶上的部署和自訂網域支援的。
heroku login
並輸入您的Heroku憑證heroku create
web: vendor/bin/heroku-php-nginx public
或web: vendor/bin/heroku-php-apache2 public
。heroku addons:add heroku-postgresql:dev
從終端將 Postgres 資料庫新增到 Heroku 應用程式git push heroku master
。完畢!heroku run php artisan migrate
一樣注意:要安裝 Heroku 附加元件,您的帳戶必須經過驗證。
git push -f openshift master
將程式碼推送到 OpenShift-f
(強制)標誌,因為當您建立新的 Node.js 應用程式時,OpenShift 會建立一個帶有歡迎頁面的虛擬伺服器。傳遞-f
標誌將覆蓋您的Hackathon Starter專案儲存庫中的所有內容。不要運行git pull
因為它會產生不必要的合併衝突。git remote add azure [Azure Git URL]
git push azure master
注意:其他說明(包括如何使用 DevOps 管道設定項目)可在 http://ibm.biz/hackstart 上找到。這些說明的較長版本和螢幕截圖可在 http://ibm.biz/hackstart2 上找到。另外,請務必查看使用 DevOps Services 和 Bluemix 快速啟動您的黑客馬拉松影片。
感謝您考慮為 Laravel Hackathon Starter 做出貢獻。貢獻指南可以在貢獻文件中找到
如果您發現 Laravel Hackathon Starter 中存在安全漏洞,請發送電子郵件至 Prosper Otemuyiwa:[email protected]。所有安全漏洞都將及時解決。
為什麼不給 github 倉庫加註星標呢?我希望得到關注!為什麼不在 Twitter 或 HackerNews 上分享此存儲庫的連結?傳播這個詞!
不要忘記在推特上關注我!
謝謝!繁榮奧特穆伊瓦。
麻省理工學院許可證 (MIT)。請參閱許可證文件以獲取更多資訊。