Laravelãã¬ãŒã ã¯ãŒã¯ã¯æ¥éã«äººæ°ãéããŠããããã§ã«å€ãã®ãã¡ã³ãç²åŸããŠããŸãã ãã®èšäºã§ã¯ãLaravelçšã®åçŽãªããã±ãŒãžã®éçºãããã³composer.jsonã®1è¡ã§ããã±ãŒãžããããžã§ã¯ãã«è¿œå ããããã«packagist.orgã§äœæããããã±ãŒãžã®å ¬éã«ã€ããŠèª¬æããŸãã
ããã§ãããã«ã€ããŠã®ãã¹ãŠã¯äœã§ãã
å ¬åŒã®ããã¥ã¡ã³ãã«æžãããŠããããã«ãããã±ãŒãžã¯Laravelã«æ°ããæ©èœãè¿œå ããäž»ãªæ¹æ³ã§ãã Laravelå°çšã®ããã±ãŒãžãäœæããŸããããã¯ããšã³ããªã®ãªã¹ããšèšäºã衚瀺ããããã®ããŒãžãåããã·ã³ãã«ãªããã°ã§ãã ç§ãã¡ã¯ãã«ã¹ã¿ãã€ãºã®å¯èœæ§ãããããããåªããæ®éçãªããã°ãæžãããšãç®æããŠããŸãããããã±ãŒãžãäœæããããšã®è©³çŽ°ã¯ãã¹ãŠãæ¥åžžçãªã¿ã¹ã¯ã解決ãããšãã«ãããžã§ã¯ãã§ã³ãŒãã®éè€ãé¿ããã®ã«åœ¹ç«ã€ç¬ç«ããæ¡åŒµæ©èœãšããŠã®ã¿èæ ®ããŸãã
æåŸã«ããããååŸããŸãã
ç§ãã¡ãåŠã¶ããš
- ãããžã§ã¯ãã®æ©èœãæ¡åŒµããããã±ãŒãžãäœæããæ¹æ³ã
- ããã±ãŒãžå ã®åºæ¬çãªæ§é ãç解ããŸãããã
- ã«ãŒããè¿œå ããæ¹æ³ãç解ããŸãããã
- ãã³ãã¬ãŒããä¿åããå ŽæãèŠã€ããŸãã
- ã¹ã¿ãŒãã¢ããã«è¿œå ããå¿ èŠãããã¯ã©ã¹ãäœæ²å®¶ã«ç€ºããŸãã
- 移è¡ãäœæããããŒãã«ã«åæããŒã¿ãå ¥åããŠã¿ãŸãããã
- ããã±ãŒãžã®å€éšãªãœãŒã¹ïŒcssãjs-ãã¡ã€ã«ïŒãå©çšå¯èœã«ããŸãã
å¿ èŠãªããŒã«
ç§ã¯PhpStorm IDEã䜿çšããŠMacOSçšã«éçºããŠããããµã€ãèªäœã¯å ¬åŒVagrantããã¯ã¹-Homesteadã§å転ããŸãã
habrã«ã¯ãVagrantã€ã¡ãŒãžã®èšå®æ¹æ³ãšLaravelèªäœã®ã€ã³ã¹ããŒã«æ¹æ³ã«é¢ããæçšãªèšäºãæ¢ã«ãããŸããã
ããã±ãŒãžã¯æçµçã«äœãè¡šããŸããïŒ
圌ã«ã¯2ã€ã®ã«ãŒãããããŸãã
- æçš¿ã®ãªã¹ããããããŒãžã
- å¥ã®æçš¿ããŒãžã
ããã€ãã®ãã³ãã¬ãŒãïŒ
- ããã°ã®äžè¬çãªã¬ã€ã¢ãŠãã
- ãšã³ããªã®ãªã¹ããããããŒãžã
- æçš¿ãªã¹ãã®ãšã³ããªã®çããã¥ãŒã
- èšé²ã®å šæ¯ã
ãã£ãŒã«ããæã€1ã€ã®æçš¿ã¢ãã«ïŒ
- 圹è·
- ãŠããŒã¯ãªæçš¿ãªã³ã¯
- æçš¿ããã¹ã
- äœææé
- æŽæ°æé
ãŸãããšã³ããªã®ããã¹ãããæåã®120æåãååŸãããèšç®ãã£ãŒã«ãã«ããã
ãã¹ãŠã«å ããŠãå¿ èŠãªããŒã¿ããã³ãã¬ãŒãã«ãã€ã³ãããããã«ãããŒãžè¡šç€ºããžãã¯ãšè¿œå ã®ã³ã³ãã€ã©ãã¡ã€ã«ãã°ã«ãŒãåããã³ã³ãããŒã©ãŒã¯ã©ã¹ãäœæããŸãã
çµè«ãšããŠãæçš¿ãå«ãããŒãã«ç§»è¡ãã¡ã€ã«ãäœæããäžå®éã®åæããŒã¿ãå«ãã·ãŒãã¯ã©ã¹ãäœæããŸãã
ã¢ããªã±ãŒã·ã§ã³ã®ãããªãã¯ãã©ã«ããŒã«ããã±ãŒãžã¹ã¿ã€ã«ãå ¬éããŸãã
ä»äºãå§ãã
ããã§ãLaravelãã€ã³ã¹ããŒã«ããããæ°ã«å ¥ãã®IDEãéãããéå§ã§ããŸãã
ååãšã¡ãŒã«ã®ãã©ã¡ãŒã¿ãŒãapp / config / workbench.phpãã¡ã€ã«ã«æžã蟌ã¿ãŸããå°æ¥ããããã¯ãã©ã¡ãŒã¿ãŒãšããŠcomposer.jsonã§äœ¿çšãããŸãã
ãããã®ãã©ã¡ãŒã¿ãŒãç»é²ããããã³ã³ãœãŒã«ã§å®è¡ããŸãã
php artisan workbench vendor/package --resources
vendorã¯ãµãŒãã¹ãããã€ããŒã®ååã§ãpackageã¯äœæããããã±ãŒãžã®ååã§ãã
ããšãã°ãgithubã§ã®ãã°ã€ã³ã¯cherryoffã§ãããäœæããããã±ãŒãžnbblogãåŒã³åºãããã®ã§ãã³ãã³ããå®è¡ããå¿ èŠããããŸãã
php artisan workbench --resources cherryoff/nbblog
resoursesãã©ã°ã¯ãLaravelåºæã®ãã©ã«ããŒïŒç§»è¡ããã¥ãŒãæ§æãªã©ïŒãäœæããå¿ èŠãããããšã瀺ããŠããŸãã
ãã¹ãŠãé 調ã«é²ãã å Žåããããžã§ã¯ãã®ã«ãŒãã«è¡šç€ºãããŸãïŒ
Laravelãã¢ããªã±ãŒã·ã§ã³ã®èµ·åæã«ããã±ãŒãžãèªåçã«ããŒãããã«ã¯ã providersé åã®app / config / app.phpãã¡ã€ã«ã«è¡ãè¿œå ããå¿ èŠããããŸãã
'Cherryoff\Nbblog\NbblogServiceProvider',
ãµãŒãã¹ãããã€ããŒã®ã¯ã©ã¹åã¯[Package] ServiceProviderã¹ããŒã ã«åŸããŸãããå®å šãªã¯ã©ã¹ã¹ããŒã¹åã¯ãã®åã«æå®ãããŸã
ããã±ãŒãžæ§é
srcãã©ã«ããŒã«ã¯ãããªãã¿ã®ãã©ã«ããŒã®æ§é ãããããã®ååã¯ããèªäœãè¡šããŠããŸãã
src / Cherryoff / Nbblog /ãã©ã«ããŒã«ã¯ãµãŒãã¹ãããã€ããŒã®ã¯ã©ã¹ãå«ãŸããŠãããããã±ãŒãžã®ãã¹ãŠã®è£å©ã¯ã©ã¹ãããã«é 眮ãããŠããããšã«æ³šæããŠãã ããã
NbblogServiceProviderã¯ã©ã¹ãã芧ãã ãã ã registerã¡ãœããã¯ãããã±ãŒãžãç»é²ããããšããã«åŒã³åºããã bootã¡ãœããã¯ããªã¯ãšã¹ããåŠçããåã«æ¯ååŒã³åºãããŸãã
ããã°ã®äœæã«çŠç¹ãåœãŠã
ããã±ãŒãžã®srcãã©ã«ããŒã§ã2ã€ã®ã«ãŒããå«ãroutes.phpãã¡ã€ã«ãäœæããŸã ã
Route::get('/blog/', array( 'as' => 'posts_list', 'uses' => 'Cherryoff\Nbblog\NbblogController@showList' )); Route::get('/blog/{link}', array( 'as' => 'post', 'uses' => 'Cherryoff\Nbblog\NbblogController@showPost' ))->where('link', '[A-Za-z-_]+');
ã³ã³ãããŒã©ãŒãšããŠããŸã äœæãããŠããªãã³ã³ãããŒã©ãŒãžã®ãã«ãã¹ãæå®ããŸãã
次ã«ã ã³ã³ãããŒã©ãŒãã©ã«ããŒã§ã次ã®å 容ã®NbblogControllerã³ã³ãããŒã©ãŒãäœæããŸãã
<?php namespace Cherryoff\Nbblog; use Illuminate\Support\Facades\App; use Illuminate\Support\Facades\Config; use Illuminate\Routing\Controller; use Illuminate\Support\Facades\Redirect; use Illuminate\Support\Facades\Response; use Illuminate\Support\Facades\Request; use Illuminate\Support\Facades\View; use Illuminate\Support\Facades\Input; use Illuminate\Support\Facades\File; use Illuminate\Support\Facades\Session; use Illuminate\Support\Facades\URL; class NbblogController extends Controller { public function showList() { return 'Posts list'; } public function showPost($link) { return 'Get post:'.$link; } }
ããŠãããã§ãã¹ãèšå®ãããã³ã³ãããŒã©ãŒã¯ç°¡åãªã¡ãã»ãŒãžã§å¿çããã¯ãã§ãã ãããããªã³ã¯sandbox.local / blogããã©ããšãããŒãžãèŠã€ãããªãã£ããšããäŸå€ãçºçããŸãã åé¡ã¯ãããã±ãŒãžãç¬èªã®ãã¹ãæã£ãŠããããšãã¢ããªã±ãŒã·ã§ã³ãèªèããŠããªãããšã§ãããããä¿®æ£ããããã«ã NbblogServiceProviderã¯ã©ã¹ã®bootã¡ãœããã®æåŸã«routes.phpãã¡ã€ã«ãå«ããŸãã
include __DIR__.'/../../routes.php';
ãããããã®åŸã§ãäœãæ©èœããããšã©ãŒããã£ããããŸãã
ã¯ã©ã¹Cherryoff \ Nbblog \ NbblogControllerã¯ååšããŸãã
ããã¯ãããã±ãŒãžå ã®äœæ²å®¶ãæ°ããè¿œå ãããã³ã³ãããŒã©ãŒã«ã€ããŠäœãç¥ããªãããšã瀺ããŠããŸãã composerã«å¿ èŠãªãã¡ã€ã«ãæ¢ãå Žæã瀺ãã«ã¯ã classmapã»ã¯ã·ã§ã³ã®composer.json ïŒç§ãã¡ã®ããã±ãŒãž!!!ïŒã«ãsrc / controllersããšããè¡ãè¿œå ããŠãããå®è¡ããŸã
composer dump-autoload
ä»ãç§ãã¡ãè¡ãå ŽåïŒ
sandbox.local /ããã°
次ã®è¡ã衚瀺ãããŸãã
æçš¿ãªã¹ã
ãã£ãïŒ ããã¯ããã¹ãæ©èœããããšãæå³ããã³ã³ãããŒã©ãŒãéžæãããŸããïŒ
次ã«ã modelsãã©ã«ããŒãšãã®äžã«Post.phpãã¡ã€ã«ãäœæããŸãã ãã¡ã€ã«ãªã¹ãã以äžã«ç€ºããŸãã
<?php namespace Cherryoff\Nbblog; use Illuminate\Database\Eloquent\Model; use Illuminate\Support\Str; use Illuminate\Support\Facades\Config; /** * */ class Post extends Model { protected $table = 'posts'; // protected $appends = array('cut'); // protected $fillable = array('header', 'link', 'article'); // public static $rules = array( 'header' => 'required|max:256', 'link' => 'required|between:2,32|unique', 'article' => 'required' ); public function getCutAttribute(){ return Str::limit($this->attributes['article'], 120); } }
ããã§ã ã¢ãã«ãã©ã«ããŒããããžã§ã¯ãã®ã¹ã¿ãŒãã¢ããã»ã¯ã·ã§ã³composer.jsonã«è¿œå ãïŒäžèšã®ã src / controllers ãè¡ãè¿œå ããå¿ èŠããããŸãïŒãã³ã³ãããŒã©ãŒã®å Žåãšåãããã«composer dump-autoloadãå®è¡ããå¿ èŠããããŸãã
Laravel Webãµã€ãã§Eloquentã¢ãã«ã®è©³çŽ°ãèªãããšãã§ããŸãã
ã³ã³ãœãŒã«ã®è¡ã«ãããããã±ãŒãžã®ç§»è¡ãäœæãããŸãã
php artisan migrate:make create_nbblog_posts_table --bench="cherryoff/nbblog"
src / migrations /ãã©ã«ãã«ãæ°ããäœæããã移è¡ã®ã¯ã©ã¹ã衚瀺ãããŸããã 圌ã®upã¡ãœããã§ã¯ã次ã®ããã«èšè¿°ããŸãã
Schema::create('posts', function (Blueprint $table) { $table->increments('id'); $table->string('link', 32); $table->string('header', 256); $table->text('article'); $table->timestamps(); $table->softDeletes(); });
downã¡ãœããã§ã¯ïŒ
Schema::dropIfExists('posts');
ãããã£ãŠã upã¡ãœããã§ã¯ãã¢ãã«ã«å¿ èŠãªãã£ãŒã«ããæã€ããŒãã«ãäœæãã downã¡ãœããã§ã¯ãååšããå Žåã¯åé€ããŸã
ããã§ã¯ã移è¡ãå®äºããæãæ¥ãŸããã
php artisan migrate --bench="cherryoff/nbblog"
ããŒã¿ããŒã¹æ¥ç¶ãæ£ããæ§æãããšãã³ã³ãœãŒã«ã«æ¬¡ã®ãããªãã®ã衚瀺ãããŸãã
Migration table created successfully. Migrated: 2014_10_23_115450_create_nbblog_posts_table
次ã«ãæ°ããäœæããããŒãã«ã«åæããŒã¿ãå ¥åããŸãã ãããè¡ãã«ã¯ãsrcãã©ã«ããŒã§ã次ã®å 容ã®NbblogSeeder.phpãã¡ã€ã«ã䜿çšããŠseedsãã©ã«ããŒãäœæããŸãã
NbblogSeeder.php
<?php namespace Cherryoff\Nbblog; use Illuminate\Database\Seeder; class NbblogSeeder extends Seeder { public function run() { $posts = [ [ 'header'=>'Header post number one', 'link'=>'one', 'article'=>' In condimentum facilisis porta. Sed nec diam eu diam mattis viverra. Nulla fringilla, orci ac euismod semper, magna diam porttitor mauris, quis sollicitudin sapien justo in libero. Vestibulum mollis mauris enim. Morbi euismod magna ac lorem rutrum elementum. Donec viverra auctor lobortis. Pellentesque eu est a nulla placerat dignissim. Morbi a enim in magna semper bibendum. Etiam scelerisque, nunc ac egestas consequat, odio nibh euismod nulla, eget auctor orci nibh vel nisi. Aliquam erat volutpat. Mauris vel neque sit amet nunc gravida congue sed sit amet purus. Quisque lacus quam, egestas ac tincidunt a, lacinia vel velit. Aenean facilisis nulla vitae urna tincidunt congue sed ut dui. Morbi malesuada nulla nec purus convallis consequat. Vivamus id mollis quam. Morbi ac commodo nulla. In condimentum orci id nisl volutpat bibendum. Quisque commodo hendrerit lorem quis egestas. Maecenas quis tortor arcu. Vivamus rutrum nunc non neque consectetur quis placerat neque lobortis. Nam vestibulum, arcu sodales feugiat consectetur, nisl orci bibendum elit, eu euismod magna sapien ut nibh. Donec semper quam scelerisque tortor dictum gravida. In hac habitasse platea dictumst. Nam pulvinar, odio sed rhoncus suscipit, sem diam ultrices mauris, eu consequat purus metus eu velit. Proin metus odio, aliquam eget molestie nec, gravida ut sapien. Phasellus quis est sed turpis sollicitudin venenatis sed eu odio. Praesent eget neque eu eros interdum malesuada non vel leo. Sed fringilla porta ligula egestas tincidunt. Nullam risus magna, ornare vitae varius eget, scelerisque. ', ], [ 'header'=>'Very important news', 'link'=>'news', 'article'=>' Donec congue lacinia dui, a porttitor lectus condimentum laoreet. Nunc eu ullamcorper orci. Quisque eget odio ac lectus vestibulum faucibus eget in metus. In pellentesque faucibus vestibulum. Nulla at nulla justo, eget luctus tortor. Nulla facilisi. Duis aliquet egestas purus in blandit. Curabitur vulputate, ligula lacinia scelerisque tempor, lacus lacus ornare ante, ac egestas est urna sit amet arcu. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Sed molestie augue sit amet leo consequat posuere. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Proin vel ante a orci tempus eleifend ut et magna. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vivamus luctus urna sed urna ultricies ac tempor dui sagittis. In condimentum facilisis porta. Sed nec diam eu diam mattis viverra. Nulla fringilla, orci ac euismod semper, magna diam porttitor mauris, quis sollicitudin sapien. ', ], ]; foreach ($posts as $post){ Post::create($post); } } }
seedsãã©ã«ããŒãèµ·åã»ã¯ã·ã§ã³composer.jsonã«è¿œå ããŠãå床å®è¡ããŸã
composer dump-autoload
次ã®ã³ãã³ãã§åæããŒã¿ãããŒãããŸãã
php artisan db:seed --class="\Cherryoff\Nbblog\NbblogSeeder"
ãã¹ãŠãæ£ãããã°ããã¹ãŠããšã©ãŒãªãã§çµäºããŸããã
src / viewsãã©ã«ããŒã«é 眮ããŠãããã°ã®ãã¥ãŒãã³ãã¬ãŒããäœæããŸãããã
layout.blade.php
<!DOCTYPE html> <html> <head> <link href='http://fonts.googleapis.com/css?family=Lora&subset=latin,cyrillic' rel='stylesheet' type='text/css'> <title> @yield('title') </title> </head> <body> <div class="content"> <header> <h1>My simple blog</h1> <small>Just blog package for Laravel</small> </header> <nav> <ul> <li><a href="/">Main page</a></li> <li><a href="/blog/">Blog</a></li> </ul> </nav> @yield('content') </div> </body> </html>
list.blade.php
@section('title') List @stop @section('content') <small>Number of posts in the blog: {{$count}}</small> <ul class="posts-list"> @forelse($posts as $post) @include('nbblog::preview') @empty <li><h3>No records</h3></li> @endforelse </ul> @stop
preview.blade.php
<li> <span><small>{{$post->created_at}}</small></span> <h2><a href="/blog/{{$post->link}}">{{$post->header}}</a></h2> <p>{{$post->cut}}</p> </li>
post.blade.php
@section('title') {{$header}} @stop @section('content') <div class="post-block"> <span><small>{{$created_at}}</small></span> <h2>{{$header}}</h2> <p> {{$article}} </p> </div> @stop
次ã®ãããªããã±ãŒãžã¿ã€ãã«ã¢ã¯ã»ã¹ããå¿ èŠãããããšã«æ³šæããŠãã ããã
package_name :: path_to_file ããã®å ŽåïŒ
nbblog ::ãã¬ãã¥ãŒ
ãããã£ãŠããã³ãã¬ãŒããå®æããããä»åºŠã¯ãã³ãã¬ãŒããããŒã¿ã§åãå§ããããšãã§ããŸãã ãããè¡ãã«ã¯ã srcãã©ã«ããŒã«viewComposers.phpãã¡ã€ã«ãçŽæ¥äœæããŸãã ïŒãã®ãã¡ã€ã«ã¯ããã±ãŒãžã®ã©ãã«ã§ãäœæã§ããŸãããäž»ãªããšã¯æ¥ç¶ãå¿ããªãããšã§ãïŒã
viewComposers.php
<?php /** * */ View::composer(array('nbblog::list', 'nbblog::post'), function($view){ $view->with('uri', 'blog'); }); View::composer('nbblog::list', function ($view) { $view->with('count', \Cherryoff\Nbblog\Post::count())->with('posts', \Cherryoff\Nbblog\Post::all()); });
uriå€æ°ãæçš¿ãªã¹ããã³ãã¬ãŒããšæçš¿ãã³ãã¬ãŒãã«ãªã³ã¯ããŸããïŒå°æ¥ãèšå®ãããã®å€æ°ãååŸãããšãã1ã€ã®å Žæã§ãã¥ãŒã«è»¢éããæ¹ã䟿å©ã«ãªãã§ãããïŒãšãæçš¿ãªã¹ããã³ãã¬ãŒããšå ±ã«ããã¹ãŠã®ã¬ã³ãŒããäžåºŠã«æäŸããŸãã
ããã§ããã¡ã€ã«route.phpã§è¡ã£ãããã«ãäœæãããã¡ã€ã«ããµãŒãã¹ãããã€ããŒã®ã¯ã©ã¹ïŒ src / Cherryoff / Nbblog / NbblogServiceProvider.php ïŒã«æ¥ç¶ããå¿ èŠããããŸãã
/** * viewComposers */ include __DIR__.'/../../viewComposers.php';
ã³ã³ãããŒã©ãŒã®ã¯ã©ã¹ãå€æŽããŠã次ã®ããã«ããŸãã
class NbblogController extends Controller { public function __construct(){ $this->layout = View::make('nbblog::layout'); } public function showList() { $this->layout->content = View::make('nbblog::list'); } public function showPost($link) { $post = Post::where('link', '=', $link)->firstOrFail(); $this->layout->content = View::make('nbblog::post', $post); } }
ããã§ãããã°ã®æºåãæŽããŸããã ããã¯ã sandbox.local / blogã§è©äŸ¡ã§ããŸãã
ãšã³ããªã®ãªã¹ãã衚瀺ãããæçš¿ã衚瀺ãããŸãã
ããããèŠãç®ã¯ããŸãè¯ããªãã®ã§ãä¿®æ£ããããšæããŸãã ãããè¡ãã«ã¯ãããã±ãŒãžã®ãããªãã¯ãã©ã«ããŒã«cssãã©ã«ããŒãäœæãã次ã®å 容ã®main.cssãã¡ã€ã«ãè¿œå ããŸã ã
main.css
html, body { font-family: 'Lora', "Times New Roman", serif; padding: 0; color: #383840; background-color: #F2F2F2; } a { color: #676673; } a:hover { color: #383840; } span, small { color: #B8B8BF; } .content { width: 600px; margin: 0 auto; } header { text-align: center; } header h1 { margin-bottom: 5px; } nav { width: auto; margin: 0 auto; text-align: center; } nav ul { padding: 0; margin-top: 10px; margin-bottom: 20px; } nav li { list-style: none; display: inline-block; padding: 10px 5px; margin: 0 20px; } .posts-list { padding: 0; } .posts-list li { list-style: none; border-bottom: 1px dotted #B8B8BF; padding-bottom: 10px; margin-top: 20px; margin-bottom: 60px; } .posts-list li > span, .post-block > span { width: 100%; text-align: center; display: inline-block; border-bottom: 1px dotted #B8B8BF; height: 10px; } .posts-list li > span small, .post-block > span small { background-color: #F2F2F2; padding: 10px; } .posts-list h2 { text-align: center; } .posts-list a { text-decoration: none; padding: 10px 20px; }
次ã®ã³ãã³ãã䜿çšããŠãããã±ãŒãžã®å€éšãªãœãŒã¹ãå ¬éããŸãã
php artisan asset:publish --bench="cherryoff/nbblog"
ããããããã«æ°ã¥ããªãã£ããããããŸãããã main.cssãã¡ã€ã«ã¯ãã¢ããªã±ãŒã·ã§ã³ã®ãããªãã¯ãã©ã«ããŒã«çŸããŸããããã®ãã©ã«ããŒã¯ã packages / cherryoff / nbblog / css / folderã«ãããŸãã
ãæ³åã®ãšãããlaravelã¯ãã¹ãŠã®å€éšããã±ãŒãžãªãœãŒã¹ãåŠçããŸãã ããã¯ãå€éšãªãœãŒã¹ã®ãã®åœåèŠåãããã³ãã¬ãŒããããã®ãã¡ã€ã«ã«ã¢ã¯ã»ã¹ããã®ã«åœ¹ç«ã€ããšãæå³ããŸãã
layout.blade.phpãã³ãã¬ãŒãã§ã ã¿ã€ãã«ã¿ã°ã®åã«è¡ãæ¿å ¥ããŸã ã
{{ HTML::style('/packages/cherryoff/nbblog/css/main.css') }}
ããã¯ãã¢ããªã±ãŒã·ã§ã³ã®ãããªãã¯ãã©ã«ããŒã«ãããã¡ã€ã«ãžã®ãã¹ã§ãã
ããŒãžãæŽæ°ãããšãäœæããæãåçŽãªããã°ã衚瀺ãããŸãã
ã¹ã¿ã€ã«ã§ã圌ã¯èããè¯ããªãå§ããŸããã
宿é¡ã®åœ¢åŒã§ã¯ãããã°ã®URLèšå®ãšãã³ãã¬ãŒãåã§èšå®ãã¡ã€ã«ãäœæããã ãã§æžã¿ãŸããããã«ããããµã€ãäžã®ããã°ãžã®ãã¹ãå€æŽããããç¬èªã®ãã³ãã¬ãŒãã䜿çšããŠã³ã³ãã³ãã衚瀺ãããã§ããŸãã
ããã§ã¯ãgithubã§ãããžã§ã¯ããèŠãããšãã§ããŸãã
ã©ã€ãã㢠ã
ãŸãã¯ãLaravelãããžã§ã¯ãè¡ã®composer.jsonã«äŸåé¢ä¿ãè¿œå ããŸãïŒ "cherryoff / nbblog"ïŒ "dev-master"
ãŸãšã
ãã®ãããLaravelçšã®ããã±ãŒãžã®äœææ¹æ³ãåŠã³ãããã±ãŒãžã®æ§æã確èªããŸããããµãŒãããŒãã£ã®ããã±ãŒãžããã©ãŒã¯ããŠãããŒãºã«åãããŠç°¡åã«èª¿æŽã§ããããã«ãªããŸããã ããã±ãŒãžå ã§ã«ãŒãã£ã³ã°ãã©ã®ããã«çºçãããã確èªããã¹ã¿ãŒãã¢ããçšã®ãã¡ã€ã«ãååŸããå Žæãã³ã³ããŒã¶ãŒã«ç€ºãæ¹æ³ãåŠç¿ããããã±ãŒãžå ã§ã®ç§»è¡ãšã·ãŒãã®å®è¡æ¹æ³ãåŠç¿ããã¢ããªã±ãŒã·ã§ã³ã®ãããªãã¯ãã©ã«ããŒã«ãªãœãŒã¹ãå ¬éããŸããã
ãã®èšäºã¯ãç§ãèšç»ãããã®ãããå°ãå€ããªã£ãããã次ã®èšäºã§èª¬æããå 容ã«ã€ããŠå°ã説æããŸããã
- ããã±ãŒãžèšå®ãäœæããããã±ãŒãžãã¡ã€ã«èªäœã«è§ŠããããšãªããŠãŒã¶ãŒã«å€æŽããæ©èœãæäŸããæ¹æ³ã瀺ããŸãã
- ããã±ãŒãžãã©ã«ããŒã®gitãªããžããªãå±éããŸãã
- ãããŠããã¹ãŠãGithubã«æžããŸãã
- å¿ èŠã«å¿ããŠãæ°ããäœæããããã±ãŒãžãpackagistã§å ¬éããŸãã
- githubã«ã¢ããã°ã¬ãŒããããšãã«ãpackagistã§ããã±ãŒãžã®èªåæŽæ°ãæå¹ã«ããŸãã
- çŽç²ãªLaravelã§ããã±ãŒãžãããŒã«ããŸãã
ãããèå³æ·±ãããšãå€æããå Žåãããã±ãŒãžã®æ©èœãæ¡åŒµããŸãã
- ã¿ã°ãæçš¿ã«è¿œå ããŸãã
- æçš¿ãè¿œå /ç·šé/åé€ããããã®ã€ã³ã¿ãŒãã§ãŒã¹ãè¿œå ããŸã;
- ããã±ãŒãžãããã«ã«ã¹ã¿ãã€ãºå¯èœã«ããŸãããã
ããŸãããã°ãç²ããªããããããªã³ãŒãã§ãïŒ
èšäºãæžãéã«äœ¿çšããããªã³ã¯
Laravelã®Webãµã€ã
å ¬åŒææžã®ç¿»èš³ ;
æ å¢ã玹ä»ããŸã;
ããŒã ã¹ãããã«ã€ããŠèªã ã