過去にハッカソンに参加したことがあれば、プロジェクトを開始するのにどれだけ時間がかかるかご存知でしょう。何を構築するかを決定し、プログラミング言語を選択し、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 を初めて使用する場合は、Laravel 5 をゼロから教える Jeffery Way による Laravel From Scratch スクリーンキャストを視聴することをお勧めします。あるいは、初心者/中級開発者向けのプロジェクト管理アプリを構築するためのもう 1 つの優れたチュートリアル「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
ディレクトリ (または OS の同等のディレクトリ) を PATH に配置して、システムでlarathon
実行可能ファイルを見つけられるようにしてください。
インストールが完了すると、 larathon new
コマンドにより、指定したディレクトリに新しい Laravel Hackathon Starter Pack インストールが作成されます。たとえば、 larathon new mvp
すべての依存関係がすでにインストールされている新しい Laravel Hackathon Starter Pack インストールを含むmvp
という名前のディレクトリを作成します。このインストール方法は、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
に貼り付けます注:運用環境にデプロイする準備ができたら、新しい URL を承認された Javascript オリジンと承認されたリダイレクト 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 にハッシュ#_=_
が追加されてホーム ページにリダイレクトされます。それはバグではありません。これを処理する方法については、このスタック オーバーフローのディスカッションを参照してください。
.env
ファイルに貼り付けます。.env
ファイルに貼り付けますr_basicprofile
.env
ファイルに貼り付けます.env
ファイルに追加します.env
ファイルに貼り付けます.env
ファイルに貼り付けます.env
ファイルに貼り付けます。.env
ファイルに貼り付けます.env
ファイルに入力します。.env
ファイルに貼り付けます。.env
ファイルに貼り付けます。.env
ファイルに貼り付けます。 php artisan vendor:publish
名前 | 説明 |
---|---|
config /app.php | サービスプロバイダーとファサードの構成 |
config /auth.php | パスワードリセットの設定 |
config /broadcasting.php | 放送用の設定 |
config /cache.php | キャッシュの生成と保存の構成 |
config /cloudder.php | クラウド用の構成 |
config /compile.php | コンパイル用の設定 |
config /database.php | データベースドライバーの構成 |
config /filesystems.php | さまざまなファイル システムの構成 |
config /github.php | github APIの設定 |
config /mail.php | メールの設定 |
config /queue.php | キューの設定 |
config /services.php | mailgun などのいくつかのサービスの構成。 |
config /session.php | セッションの設定 |
設定/ttwitter.php | Twitter API設定ファイル |
config /twilio.php | Twilio API 構成ファイル |
config /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 | New York Times API 機能のコントローラー |
コントローラー/OauthController.php | 認証用コントローラー |
コントローラー/PaypalController.php | Paypal API 機能のコントローラー |
コントローラー/SteamController.php | ストリーム API 機能のコントローラー |
コントローラー/StripeController.php | Stripe API 機能のコントローラー |
コントローラー/TwilioController.php | Twilio API 機能のコントローラー |
コントローラー/TwitterController.php | Twitter API 機能のコントローラー |
コントローラー/WebScrapingController.php | Webスクレイピング用のコントローラー。 |
コントローラー/YahooController.php | Yahoo API 機能のコントローラー |
コントローラー/user.js | ユーザーアカウント管理用のコントローラー。 |
モデル/User.php | ユーザー向けモデル。 |
公共/ | 静的アセット (フォント、CSS、JS、IMG)。 |
パブリック/css/main.css | アプリのメイン スタイルシート。 |
リソース/ビュー/アカウント/ | ログイン、パスワードのリセット、サインアップ、プロフィールのテンプレート。 |
ビュー/API / | API サンプルのテンプレート。 |
ビュー/部分/alerts.blade.php | エラー、情報、成功のフラッシュ通知。 |
ビュー/部分/navbar.blade.php | Navbar の部分テンプレート。 |
ビュー/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にアップロードする |
ララベルのギットハブ | Github API ライブラリ |
時計仕掛けの | 時計仕掛けの SMS API ライブラリ。 |
グット | jQuery スタイルの構文を使用して Web ページをスクレイピングします。 |
Laravelフレームワーク | PHP Web フレームワーク |
ツイッター | Twitter APIライブラリ |
トゥイリオ | Twilio API ライブラリ |
lob-php | Lob API ライブラリ |
lastfm-api-ラッパー | Lastfm API ライブラリ |
phpunit | 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
Optic の詳細については、ドキュメントを参照してください。
Token Mismatch Exception
発生するのはなぜですか?次の非表示の入力要素をフォームに追加する必要があります。これは、CSRF 保護の一部として既存のコードベースに追加されました。
{!! csrf_field() !!}
アプリキーを生成していない可能性があるので、 php artisan key:generate
を実行します。 .env ファイルに資格情報を入力していない可能性があります。
このセクションは、特定の機能がどのように動作するかについて詳細に説明することを目的としています。おそらく、あなたはそれがどのように機能するかについて興味があるだけかもしれません、あるいはコードを読んでいるときに迷って混乱しているかもしれません。これがあなたに何らかのガイダンスを提供することを願っています。
Flash メッセージを使用すると、リクエストの最後にメッセージを表示し、次のリクエストでのみメッセージにアクセスできます。たとえば、ログイン試行が失敗すると、エラー メッセージを含むアラートが表示されますが、そのページを更新するか、別のページにアクセスしてログイン ページに戻るとすぐに、そのエラー メッセージは表示されなくなります。表示されるのは一度だけです。すべての Flash メッセージは、laravel セッションを介してビューで利用できます。
より正しい言い方は、「新しいルートを作成するにはどうすればよいですか」ということです。メイン ファイルroutes.php
にはすべてのルートが含まれています。各ルートにはコールバック関数が関連付けられています。場合によっては、ルートに 3 つ以上の引数が含まれることがあります。このような場合、最初の引数は依然として URL 文字列ですが、中間の引数はいわゆるミドルウェアです。ミドルウェアをドアと考えてください。このドアによって先に進むことができない場合、コールバック関数に到達できなくなります。このような例の 1 つは、認証を必要とするルートです。
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.アプリディレクトリ内に新しいモデル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 );
}
}
ステップ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
実行し、Heraku 認証情報を入力します。heroku create
実行しますweb: vendor/bin/heroku-php-nginx public
、または nginx を使用する場合はweb: vendor/bin/heroku-php-apache2 public
だけです。heroku addons:add heroku-postgresql:dev
実行して、ターミナルから Heroku アプリに Postgres データベースを追加しますgit push heroku master
実行します。終わり!heroku run php artisan migrate
のようにします。注: Heroku アドオンをインストールするには、アカウントを認証する必要があります。
git push -f openshift master
実行して、コードを OpenShift にプッシュできるようになりました。-f
(強制) フラグを渡す必要があります。 -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 サービスと Bluemix を使用してハッカソンの取り組みを開始する」ビデオもぜひご覧ください。
Laravel Hackathon Starter への貢献をご検討いただきありがとうございます。貢献ガイドは貢献ファイルにあります。
Laravel Hackathon Starter 内でセキュリティの脆弱性を発見した場合は、Prosper Otemuyiwa ([email protected]) に電子メールを送信してください。すべてのセキュリティの脆弱性は直ちに対処されます。
github リポジトリにスターを付けてみませんか?注目してほしいです!このリポジトリのリンクを Twitter または HackerNews で共有してみてはいかがでしょうか?情報を広めてください!
ツイッターで私をフォローすることを忘れないでください!
ありがとう!オテムイワの繁栄。
MIT ライセンス (MIT)。詳細については、ライセンス ファイルを参照してください。