æ°ãæåãç§ãåããŠããã¹ã¿ãžãªã§ãããŒã å šäœãLaravelã«ç§»ãããšã決ããŸããã éå»æ°å¹Žéã§ããã®ãã¬ãŒã ã¯ãŒã¯ã®äººæ°ã¯ãããŸã¬åã§æé·ããçµå±ã®ãšãããç¡é§ã§ã¯ãããŸããã§ããïŒ
ç§ã¯èªåèªèº«ãPHPãšãã¬ãŒã ã¯ãŒã¯ã®ç¬¬äžäººè ãšã¯èããŠããŸããã ãã®åã«ãç§ã¯æåãš2çªç®ã®ãŒã³ãã§ããäžæ» ã®bitrixã§æ°ååããYiiãšSymfonyã«åºäŒããèªåã§èªè»¢è»ãçºæããŸãããããã®ãã³ã«æŒ ç¶ãšããäžæºãæããŠããŸããã
ããšãã°ãZend Frameworkã䜿çšããããšã§ãã¿ã¹ã¯ãããã«å®äºããæªå€¢ã®ãããªããšãå¿ããããªããŸããã ãã®ãã¬ãŒã ã¯ãŒã¯ã®æ¯æè ã¯ç¢ºãã«ç§ã«åæããŸãããã決ããŠåœŒãã®éžæãæ¹å€ããããããŸããã ããããã«ã Zend Frameworkã®ãããã§ãã³ãŒãã¯äººã«ãã£ãŠäœããããã®ã§ã¯ãªãã人ã®ããã«æžããããã®ã§ã¯ãªããšãã€ãæããŠããŸããã
åãã¿ã¹ã¯ãããç°¡åãã€ãšã¬ã¬ã³ãã«è§£æ±ºã§ãããšãã€ãæã£ãŠããŸããã ç§ãæžããããã¬ãŒã ã¯ãŒã¯ãèŠã€ãããã£ãã æã®ç²ã®ããã«åŠã³ãããã°ã©ãã³ã°ãæ°ããäœãã®äœæãªã©ãèªåãããããããšãããããšãã§ããŸããã ç§ã¯ãã¹ãŠã®å€§å·¥ã奜ããªãã³ããŒãæã£ãŠãããšæããŸãããããŠããã°ã©ããŒã«å¯Ÿãããã®ãããªæ¬²æ±ã¯éåžžã«èªç¶ã§ãã PHPã§æžããŠããç§ãã¡ã®å€ãã¯ãRubyã®RailsãPythonã®DjangoãããããŸããèŠãŠããŸããã
æåŸã®ã¹ãããŒã¯ãPhpStorm 8 Bladeãã³ãã¬ãŒãã®æ°ããããŒãžã§ã³ãšSourceïŒTestãã£ã¬ã¯ããªã®ãµããŒãã®æ¡åŒµã«ã€ããŠã®JetBrainsããã®æçš¿ã§ããã ãã®IDEã§ã¯ãLaravelã§æåã®ãããžã§ã¯ããäœæããŸããã
Laravelãšä»äºãããåŸãç§ã¯èªåãæ¢ããŠãããã®ãèŠã€ããããšã«æ°ä»ããŸããã ãããããããããããªããå°çããŸããããšããã¹ããŒã¬ã³ãã©ã©ãŽã§ã«ã®ã·ã³ãã«ã«ãªã£ãçç±ã§ãã
åæ¥ãããããã¥ã¡ã³ããŒã·ã§ã³ãã³ãã¥ããã£ããå¿å°ããé©ããããããšã¯ãããŸããïŒãã®èšäºãæžããŠãããšãã«åé¡ã«ééãããšããã³ãã¥ããã£ã®ãªã³ã©ã€ã³ãã£ããã«è¡ããåé¡ã説æããå人çã«çããŸããïŒïŒïŒãããžã§ã¯ãããµãŒããŒã«é 眮ããåŸã«äœ¿çšã§ããããŸãã¯äœ¿çšããå¿ èŠã®ããããŸããŸãªå©ç¹ã
ããããç§ã®èšäºã¯ããã«ã€ããŠã§ã¯ãããŸããã Laravelã®é·æã«ã€ããŠã¯ååã«æžãããŠããŸãã
ãã®èšäºã§ã¯ã11æã«å ¬åŒã«ãªãªãŒã¹ãããLaravelã®æ°ããããŒãžã§ã³ã«ã€ããŠæžããããšæããŸãããComposerããä»ããããŠã³ããŒãããŠè©Šãããšãã§ããŸãã
åœåãããŒãžã§ã³ã¯4.3ãšåŒã°ããŠããŸããããæ°ãããã£ã¬ã¯ããªæ§é ãšã³ãŒãã®ããã€ãã®éèŠãªå€æŽã«ãããäœæè ã¯ããŒãžã§ã³5.0ãçºè¡šããããšã«ããŸããã
ãããã®å€æŽãããªãã«ãšã£ãŠã©ãã»ã©æ·±å»ã§ããããå€æããŸãã ããã§ã¯ãå®éã«Laravel 5ãç§ãã¡ã«æºåããŠãããã®ãèŠãŠã¿ãŸãããã
èšçœ®
æ°ããããŒãžã§ã³ã®ã€ã³ã¹ããŒã«ã¯ãåºæ¬çã«å€ãããŒãžã§ã³ãšå€ãããŸããã éå§ããã«ã¯ãcomposer.jsonãã¡ã€ã«ã«è¡ãè¿œå ããŠLaravel 5ãããŠã³ããŒãããŸã
"require": { //... "laravel/framework": "5.0.*@dev" //... }
ãã®åŸãcomposer updateãå®è¡ãããšãæäœã®æåŸã«ææ°ããŒãžã§ã³ãã€ã³ã¹ããŒã«ãããŸãã
æ§é
Laravel 4ãšLaravel 5ã®æ§é ãèŠããšãããã«éãã«æ°ä»ãããšãã§ããŸãã ãŸããConfigãTestsãStorageãããã³Databaseãã©ã«ããŒãAppãã©ã«ããŒããã«ãŒãã«ç§»åãããŸããã æ°ãããªãœãŒã¹ãã£ã¬ã¯ããªãç»å ŽããŸããã
è«ççãªçåãçããŸããAppãã©ã«ããŒã«ã¯äœãæ®ã£ãŠããŸããïŒ
ããã§ãAppãã©ã«ããŒã«ã¯ãã¢ããªã±ãŒã·ã§ã³èªäœã®ããžãã¯ã®ã¿ãä¿åãããŸãã ãããã£ãŠãéçºè ã¯ã»ãšãã©ã®Laraveléçºè ã以åã«è¡ã£ãããšãåæ³åããŸãããã¢ãã«ãã©ã«ããŒãåé€ãããã®ç¹å®ã®ãããžã§ã¯ãã®éçºã«é¢é£ãããã¹ãŠïŒã¢ãã«ãããŒã ãã€ãã³ããªã©ïŒã«åå¥ã®ãã£ã¬ã¯ããªãäœæããŸãã ãŸã第äžã«ãããã«ããããã¬ãŒã ã¯ãŒã¯èªäœã®ã³ãŒããšéçºè ãèšè¿°ããã³ãŒãã®éã«æ確ã«ç·ãåŒãããšãã§ããŸãã
Appãã©ã«ãã«ã¯ãããã©ã«ãã§3ã€ã®æ°ãããã£ã¬ã¯ããªããããŸãã Consoleãã£ã¬ã¯ããªã¯ã³ã³ãœãŒã«ã³ãã³ãã®ã¯ã©ã¹ã察象ãšããŠãããService Providersãã©ã«ããŒã«ã¯ãµãŒãã¹ãããã€ããŒã®ã¯ã©ã¹ãå«ãŸããHttpãã©ã«ããŒã«ã¯ã³ã³ãããŒã©ãŒããã£ã«ã¿ãŒãã«ãŒãã£ã³ã°ã«é¢é£ãããã¹ãŠãå«ãŸããŸãã
次ã«ãHttpãã£ã¬ã¯ããªã«ã¯3ã€ã®ãã©ã«ããŒããããŸããã¢ããªã±ãŒã·ã§ã³ã³ã³ãããŒã©ãŒçšã®ã³ã³ãããŒã©ãŒãåå¥ã®ã¯ã©ã¹ãšããŠäœæãããã«ãŒããã£ã«ã¿ãŒçšã®ãã£ã«ã¿ãŒãããã³ä»¥äžã§è©³çŽ°ã«èª¬æããèŠæ±ãã©ã«ããŒã§ãã
Viewãã©ã«ããŒã¯ãLangããŒã«ã©ã€ãºãã©ã«ããŒãšå ±ã«Resourcesãã£ã¬ã¯ããªãŒã«ç§»åããŸããã
æ°ããæ§é ã¯çããããã«èŠãããããããŸããããæ°æ¥åŸã«ã¯ã¯ããã«äŸ¿å©ã§ããããšã«æ°ä»ãã§ãããã
æ§é ã®å€æŽã«é¢é£ããŠæåã«çºçããå¯èœæ§ã®ããçåã¯ãåå空éãšã¯ã©ã¹ã®ãªãŒãããŒãã«äœãèµ·ãã£ãã®ããšããããšã§ãã
åå空é
Laravel 5ã¯å ¬åŒã«psr-4æšæºãå ¬åŒã«äœ¿çšããŠããŸããããã¯ãæ£ããåå空éãæã€Appãã©ã«ããŒå ã®ãã¹ãŠã®ã¯ã©ã¹ããªãŒãããŒããŒã§äœ¿çšã§ããããšãæå³ããŸãã
ãããã£ãŠããã®ãã©ã«ããŒå ã®ãã¹ãŠã®ã¯ã©ã¹ãApp \ *ãã£ã¬ã¯ããªåã§å§ãŸãããšã確èªãããã¡ã€ã«ã®ã¢ããããŒãã®åé¡ãæ°žä¹ ã«å¿ããŠãã ããã
äžæ¹ãpsr-4ã䜿çšãããšããã¡ãµãŒããžã®ã¢ã¯ã»ã¹ã«ã¯ãã°ããŒãã«åå空éïŒ\ Auth :: * method name *ãŸãã¯\ Events :: * method name *ãªã©ïŒããã®ã¢ã¯ã»ã¹ãå¿ èŠã«ãªããŸãã
ãã®ç¹ã«é¢ããŠããã¡ã€ã«ã®å é ã§use \ front-nameã³ãã³ãïŒããšãã°ã\ ViewïŒã䜿çšããŠãã¡ãµãŒããã€ã³ããŒãããããããã¯ã¹ã©ãã·ã¥çµç±ã§ã¢ã¯ã»ã¹ããå¿ èŠããããŸãã
ããã«ãã³ã³ãããŒã©ãŒã®åå空éãæå®ããå¿ èŠããããŸãã ãã¹ãŠã®ã³ã³ãããŒã©ãŒã«æååãå«ãŸããŠããããšã確èªããŠãã ãã
namespace App\Http\Controllers;
æœè±¡ã³ã³ãããŒã©ãŒåå空éã䜿çšããŸã
use Illuminate\Routing\Controller;
BaseControllerããã¹ãŠã®ã³ã³ãããŒã©ãŒã®èŠªã¯ã©ã¹ãšããŠäœ¿çšããå Žåã¯ãæåŸã®è¡ãããã«é 眮ããŠããã¹ãŠã®ã³ã³ãããŒã©ãŒããã®åå空éã«ã¢ã¯ã»ã¹ã§ããããã«ããŸãã
ã¢ããªã±ãŒã·ã§ã³ã«ãŒããã©ã«ããŒ
ã¢ããªã±ãŒã·ã§ã³ã®ã¡ã€ã³ãã©ã«ããŒã«ã¢ããªãšããŠã¢ã¯ã»ã¹ããããªãå Žåã¯ã©ããªããŸããïŒ Laravel 4ã®å€ããããã§ãã£ãããã«ãã¢ããªã±ãŒã·ã§ã³ããžãã¯ãæ ŒçŽãããŠãããã£ã¬ã¯ããªã«ã¢ããªã±ãŒã·ã§ã³èªäœã®ååã§ååãä»ããå Žåã¯ã©ãã§ããããã
éçºè ããããæäŸããŠããŸãã ã³ãã³ãã©ã€ã³ã§$ php artisan appïŒnameãšã¢ããªã±ãŒã·ã§ã³ã®åžæããååãæžãã ãã§ãã Laravelã¯ãå¿ èŠãªãã¡ã€ã«ã®åå空éãšæ§æãã¡ã€ã«ã®èšå®ãåå¥ã«å€æŽããŸãã
ãµããã£ã¬ã¯ããªã䜿çšããå Žåã¯ã次ã®ããã«2ã€ã®ããã¯ã¹ã©ãã·ã¥ã䜿çšããŸã
$ php artisan app:name MyAppName\\HabrProject
ãšããã§ãæ°ãããã¡ã€ã«namespaces.phpãConfigãã©ã«ããŒã«çŸããŸããããã®ãã©ã«ããŒã«ã¯ãã¢ããªã±ãŒã·ã§ã³å šäœã®åå空éãšãã¡ã€ã«ãžã®ãã¹ãç»é²ãããŠããŸãã èµ·åã«åé¡ãããå Žåã«äŸ¿å©ã§ãïŒ
ã¡ãœãããã©ã¡ãŒã¿ã®å®è£
Laravel 5ã®ãã1ã€ã®åŒ·åãªé©æ°ã¯ãã¡ãœãããã©ã¡ãŒã¿ãŒã®å°å ¥ã§ããïŒã¡ãœãããã©ã¡ãŒã¿ãŒã€ã³ãžã§ã¯ã·ã§ã³ãŸãã¯åã«ã¡ãœããã€ã³ãžã§ã¯ã·ã§ã³ïŒã
以åã¯ãã³ã³ãããŒã©ãªã©ã®ã¢ãã«ã¯ã©ã¹ïŒãªããžããªãªã©ïŒãå¿ èŠãªå ŽåãIOC Container Dependency Injectionã䜿çšã§ããŸãããã€ãŸããã¯ã©ã¹åãã³ã³ãããŒã©ã³ã³ã¹ãã©ã¯ã¿ãŒã«æž¡ãããªããžã§ã¯ãããããã£ã«å²ãåœãŠãŸããã
Iocã³ã³ãããŒã¯ãã®ã¯ã©ã¹ã®ã€ã³ã¹ã¿ã³ã¹ãç¬èªã«äœæããã¢ã¯ã»ã¹ããã³ã³ãããŒã©ãŒããããã£ã«æ»ããŸããã ãããŠããã¯ã¯ãŒã«ã§ããã
ããšãã°ã次ã®ããã«ïŒ
class FeedController extends BaseController { protected $feedbackRepository; /** * @param FeedbackRepository $feedbackRepository */ public function __construct(FeedbackRepository $feedbackRepository) { $this->feedbackRepository = $feedbackRepository; } public function index($id) { $feed = $this->feedbackRepository->getFeed($id); return View::make('feed.index', compact('feed')); }
ãã ãã1ã€ã®ã¡ãœããã®ã¿ã§ãªããžã§ã¯ããå¿ èŠãªå Žåã¯ã©ãã§ããããïŒ ã¡ãœããã®1ã€ã ãã§äœ¿çšãããå Žåãã³ã³ãããŒã©ãŒå šäœã®ã³ã³ã¹ãã©ã¯ã¿ãŒã§ãªããžã§ã¯ãã®ã€ã³ã¹ã¿ã³ã¹ãäœæããã®ã¯ãªãã§ããïŒ
ãã®ãããLaravel 5ã§ã¯ãã¡ãœãããã©ã¡ãŒã¿ãŒã®å°å ¥ãç»å ŽããŸããïŒ
ããã§ãä»»æã®ã³ã³ãããŒã©ãŒã¡ãœããã§ã¯ã©ã¹ãæå®ã§ããIocã³ã³ãããŒãä»ããŠãã®ã¡ãœããã«èªåçã«ã¢ã¯ã»ã¹ã§ããããã«ãªããŸãã äŸã¯æ¬¡ã®ããã«ãªããŸãã
class FeedController extends BaseController { public function index(FeedbackRepository $feedRepo, $id){ $feed = $feedRepo->getFeed($id); Return view('feed.index', compact('feed') } }
ãããŠããã ãã§ãïŒ éæ³ã®ããã«ãIocã³ã³ããèªäœããªããžããªãèŠã€ããŠæ¥ç¶ããŸãã
ãããããã®ã€ãããŒã·ã§ã³ã®çã®åã¯ãå¥ã®æ°æ©èœãšäœµããŠæããããšãã§ããŸãã
ãªã¯ãšã¹ããšãã©ãŒã ãªã¯ãšã¹ãïŒFormRequestsïŒ
App \ Httpãã£ã¬ã¯ããªã®Requestsãã©ã«ãã«ã€ããŠè©±ããŠããããšãèŠããŠããŸããïŒ ããã§ãããã圌女ã«çããŸããã
Laravel 4.2ã§ãã©ãŒã ãéä¿¡ãããšãã«ãŠãŒã¶ãŒå ¥åãæ€èšŒããæ¹æ³ãæãåºããŠãã ããã
Laravelã§åããŠããã°ãValidatorã®å€èŠ³ãç¥ã£ãŠããã¯ãã§ãã
ãŠãŒã¶ãŒããåãåã£ãããŒã¿ãæ€èšŒããããã®åŒ·åãªæ©èœãæäŸããŸãã ãã ããéçºè ããšã«äœ¿çšæ¹æ³ãç°ãªããŸãã 誰ããã³ã³ãããŒã©ãŒã§ããªããŒã¿ãŒã䜿çšãã
誰ããã¢ãã«å ã®æ€èšŒã«ãŒã«ïŒé åã«ãŒã«[]ïŒãæžãçããisValidã¡ãœããã䜿çšããŸããã
å¿ããŠããŸããŸããLaravelã¯ããã©ãŒã ãªã¯ãšã¹ããåŠçããããã®ç¬ç«ããæœè±¡åã¬ãã«ãæäŸããŸãã
ä»çµã¿ãèŠãŠã¿ãŸãããã
ã³ãã³ãã©ã€ã³ã§ãphp artisan makeïŒrequest MyRequestããšå ¥åãããšããã¬ãŒã ã¯ãŒã¯ããã©ãŒã ãªã¯ãšã¹ãçšã®ãã³ãã¬ãŒããçæããŸãã
FormRequestã¯ã©ã¹ãç¶æ¿ãããã®ã¯ã©ã¹ã«ã¯ãauthorizeãšrulesãšãã2ã€ã®ã¡ãœããã®ã¿ãå«ãŸããŠããŸãã
ã«ãŒã«ã¯ãLaravel 4ãšåæ§ã«ããã©ãŒã ã®æ€èšŒã«ãŒã«ãèšè¿°ã§ããé åãè¿ããŸãã
authorizeã¡ãœããã¯ããã©ã«ãã§falseãè¿ããŸãã
ãã®ã¯ã©ã¹ã«é¢é£ä»ãããããã©ãŒã ãéä¿¡ããããšãããšããã©ãŠã¶ãŒã§çŠæ¢ããŒãžïŒçŠæ¢ïŒãååŸãããŸãã
ãããã£ãŠãauthorizeã¡ãœããã¯ããã©ãŒã ã«ã¢ã¯ã»ã¹ãããŠãŒã¶ãŒã«ãã©ãŒã ãéä¿¡ããæš©å©ããããã©ããã確èªããŸãã ããšãã°ããŠãŒã¶ãŒã¯èªåãæžããŠããªãèšäºãç·šéããæš©å©ãæã£ãŠããŸããïŒ ãã°ã€ã³ããŠããªãå Žåã¯ã³ã¡ã³ããæçš¿ããŸããïŒ ããã§ããã§ãã¯ãé 眮ããå¿ èŠããããŸãã
ãŠãŒã¶ãŒã®ãŠã©ãŒã«ã«ã¹ããŒã¿ã¹ãå ¬éãããã©ãŒã ããããšããŸãã ã¹ããŒã¿ã¹ãã£ãŒã«ãïŒéåžžã®å ¥åã¿ã€ã= 'ããã¹ã'å= 'ã¹ããŒã¿ã¹'ïŒãå¿ èŠã§ãããšãã°20æåå«ãŸããŠããå¿ èŠããããŸãã ãŸãããŠãŒã¶ãŒãèªåã®ãŠã©ãŒã«ã«ã¹ããŒã¿ã¹ãå ¬éããŠããããšãã€ãŸãããŠãŒã¶ãŒã®ããŒãžã®IDãæçš¿ã®äœæè ã®IDãšäžèŽããŠããããšã確èªããå¿ èŠããããŸãã
ãã®äŸã§ã¯ãããªããŒã¿ã¯ã©ã¹ã¯æ¬¡ã®ããã«ãªããŸãã
namespace App\Http\Requests; use Illuminate\Foundation\Http\FormRequest; use \Auth; class AddFeedRequest extends FormRequest { public function rules() { return [ 'status' => 'required|min:20', ]; } public function authorize() { return Auth::id() == $this->route->parameter('id'); }
ããŠãäžèšã§èª¬æããã¡ãœãããã©ã¡ãŒã¿ãŒã®å°å ¥ã§ããã©ãŒã ã®éä¿¡ãæ åœããã³ã³ãããŒã©ãŒã¡ãœããã®ãã©ã¡ãŒã¿ãŒã§ã¯ã©ã¹åãæå®ããã ãã§ååã§ãã
RESTã³ã³ãããŒã©ãŒã䜿çšããå Žåããããã¹ãã¢ã¡ãœããã«ãªããŸãã
public function store(MyRequest $request) { // }
ãããŠããã ãã§ãïŒ ä»ã«äœãããå¿ èŠã¯ãããŸããïŒ Laravelèªäœããã©ãŒã ãæ€èšŒããæ€èšŒãæåãããšã³ã³ãããŒã©ãŒã¡ãœããã«å«ãŸããã³ãŒããå®è¡ããŸãã ç¹°ãè¿ããŸããããã©ãŒã ã®æ€èšŒã«å€±æããå Žåãstoreã¡ãœããããã®ã³ãŒãã¯1è¡ãå®è¡ãããŸããã ç§ã®æèŠã§ã¯ãããã¯ãã¡ããã¡ãã¯ãŒã«ã§ãïŒ
çºé»æ©
ã³ãã³ãã©ã€ã³ã§php artisanãšå ¥åãããšãmakeãšãããŸã£ããæ°ããã»ã¯ã·ã§ã³ã衚瀺ãããŸãã
myRequestã¯ã©ã¹ãçæããããã«ãã§ã«ãããã®1ã€ã䜿çšããŠããŸãã ããã«ãmakeïŒã³ãã³ãã¯ãã³ã³ãããŒã©ãŒãã³ã³ãœãŒã«ã³ãã³ãã
ãã£ã«ã¿ãŒã移è¡ããµãŒãã¹ãããã€ããŒã
ç¹ã«php artisan makeïŒauthã³ãã³ãã匷調ããããšæããŸãã ãã®ãžã§ãã¬ãŒã¿ãŒã¯ãåæ°èŠãããžã§ã¯ãïŒãŠãŒã¶ãŒèªèšŒã·ã¹ãã ïŒã§ç¹°ãè¿ãè¡ã£ãããšãè¡ããŸãã
ããã§å®è¡ãããšãLaravelã2ã€ã®ã³ã³ãããŒã©ãŒãäœæããããšãããããŸãã1ã€ã¯æ¿èªãæ åœãããã1ã€ã¯ãã¹ã¯ãŒãã®å埩ããã¹ã¯ãŒããªã»ããã®ç§»è¡ããã°ã€ã³ããã³ç»é²èŠæ±ã®2ã€ã®æ€èšŒã¯ã©ã¹ãæ åœããŸãã 1ã€ã®ã³ãã³ããšèªå¯ãã³ãã¬ãŒããæºåã§ããŸããïŒ
ã«ãŒããã£ãã·ã³ã°
ã«ãŒãããŒã ãã»ã¯ã·ã§ã³å šäœã«æé·ããŸããã ã«ãŒãã®ãªã¹ãã衚瀺ããã«ã¯ãphp artisan routeïŒlistãšå ¥åããå¿ èŠããããŸãã
ããã§ãæ°ããã«ãŒãã§ããcacheã³ãã³ãã«æ°ä»ããªãã®ã¯é£ããããšã§ãã éåžžã«ç°¡åãªããšãè¡ããŸã-ã«ãŒãããã£ãã·ã¥ããŸãã
ãã®ã³ãã³ããå®è¡ãããšãroutes.phpãã¡ã€ã«ãstorage / metaãã©ã«ããŒã«è¡šç€ºãããããšãããããŸãã ã«ãŒãã®ãã£ãã·ã¥ãå«ãŸããŠããŸãã ããã§ãLaravelã¯ãŸãã¡ã€ã³ã®http / routes.phpãã¡ã€ã«ã§ã¯ãªããããã«ã¢ã¯ã»ã¹ããŸãã
ããã¯éçºäžã«ã¯ã»ãšãã©åœ¹ã«ç«ã¡ãŸãããå°ãªããšããã®ãããªç¶æ³ãæ³åããã®ã¯é£ããã§ãããå±éäžããããžã§ã¯ããæ¢ã«æžãããŠãããæ°ããã«ãŒããã»ãšãã©è¿œå ãããªãå Žåãããã¯éåžžã«åœ¹ç«ã¡ãŸãã
å¥çŽ
Laravel 5ã®ãã¹ãŠã®ã³ã³ããŒãã³ãã¯ãçŸåšãlight / contractsãã©ã«ããŒããã®ãã®ã€ã³ã¿ãŒãã§ãŒã¹ãå®è£ ããŠããŸãã ãããã£ãŠãéçºè ã¯ãã¢ããªã±ãŒã·ã§ã³ãããæè»ã«ããLaravelèªäœãžã®äŸåãå°ãªãããããšããŸããã
Laravel 4ã«ã¯ãã¿ã€ããã³ãã€ã³ã¿ãŒãã§ãŒã¹ã«é¢ããåé¡ããã°ãã°ãããŸããã ã¡ãœããã®ãã©ã¡ãŒã¿ãŒã§ç¹å®ã®ã€ã³ã¿ãŒãã§ã€ã¹ãå®è£ ãããªããžã§ã¯ãã®ã€ã³ã¹ã¿ã³ã¹ãæå®ããå ŽåãIOCã³ã³ãããŒã¯ãããäŸåæ§æ³šå ¥ãšèŠãªããã¯ã©ã¹ã®ã€ã³ã¹ã¿ã³ã¹ãäœæããããšããããããšã©ãŒãçºçããŸããã
ãã®åé¡ã解決ããã«ã¯ãapp :: bindã䜿çšããŠãã€ã³ã¿ãŒãã§ã€ã¹ãã€ã³ã¿ãŒãã§ã€ã¹ã®ç¹å®ã®å®è£ ã¯ã©ã¹ã«çŽæ¥ãã€ã³ãããå¿ èŠããããŸããã ãã ããããã¯ãããšãã°åäœãã¹ãäžãªã©ãäŸç¶ãšããŠããã€ãã®åé¡ãåŒãèµ·ãããŸããã
Laravel 5ã§ã¯ããã¡ã€ã«ã®å é ã§äœ¿çšããŠã€ã³ã¿ãŒãã§ãŒã¹ã䜿çšããã ãã§ååã§ãïŒããšãã°ãIlluminate \ Contracts \ Mailerã䜿çšããŸãïŒãã¿ã€ããã³ãã£ã³ã°ã¯æ£åžžã«æ©èœããŸãã
ããã«ãããç¹å®ã®å®è£ ã¯ã©ã¹ã«çžãããããšãªããããæè»ãªã¢ããªã±ãŒã·ã§ã³ãäœæã§ããŸãã
å°æ¥ãæšæºã®Laravelã¢ãžã¥ãŒã«ãšã¯ç°ãªãå¥ã®èªèšŒã¢ãžã¥ãŒã«ãæ¥ç¶ããå Žåã¯ã©ããªããŸããïŒ å¥ã®ãã£ãã·ã³ã°ã¢ãžã¥ãŒã«ïŒ æçŽãéãïŒ ã³ã³ãã©ã¯ããã©ã«ããŒããã€ã³ã¿ãŒãã§ã€ã¹ãå®è£ ããŠããããšã確èªããåãã³ãã€ã³ã¿ãŒãã§ã€ã¹ã«åºã¥ããŠã³ãŒããèšè¿°ããŸãã
æ°æ©èœã¢ã·ã¹ã¿ã³ã
ãããžã§ã¯ãã§äœåºŠã䜿çšããäºçŽ°ãªããšïŒãã¥ãŒãã¡ã€ã«ãã¢ã¿ããããããšã¯ããã¥ãŒé¢æ°ïŒããã¥ãŒåãïŒã§å©çšã§ããããã«ãªããŸããã å€ãView :: makeã¡ãœãããæ©èœããŸãããä»ãäžã§è¿°ã¹ãããã«ãããã¯ã¹ã©ãã·ã¥ãä»ããŠã¢ã¯ã»ã¹ããå¿ èŠããããŸãã
åãéåœããªãã€ã¬ã¯ã::ãž-ãªãã€ã¬ã¯ãïŒ 'ã«ãŒã'ïŒãæžãããšãã§ããããã«ãªããŸããã
éåžžã®äœæ¥ããŒã«ã«ãããä»ã®å€æŽã®äžã§ããHTMLããã³Formã®ãã¡ãµãŒããæšæºã®Laravelããã±ãŒãžã«å«ãŸããªããªã£ãããšã«èšåãã䟡å€ããããŸãã ããªãããããã«æ £ããŠãããªããæããªãã§ãã ãããããªãã¯äœæ²å®¶ãéããŠç°¡åã«ããããæ¥ç¶ããããšãã§ããŸãã
瀟亀ç
Laravel 5ã«ã¯ãTwitterãFacebookãGitHubãªã©ã®ãµãŒãããŒãã£ãµãŒãã¹ãèªèšŒããããã«èšèšãããSocialite Betaã¢ãžã¥ãŒã«ããããŸãã ããŸããŸãªãœãŒã·ã£ã«ãããã¯ãŒã¯ã§æ¿èªçšã®ãã©ã°ã€ã³ãè¿œå ããå¿ èŠãé »ç¹ã«ãããŸãããä»ã®ãã¬ãŒã ã¯ãŒã¯ã«åæ§ã®ããŒã«ãããã°çŽ æŽãããããšã§ãã ãã©ã°ã€ã³ã¯ãªãã·ã§ã³ã§ãããäŸåé¢ä¿ãè¿œå ããŠè¿œå ããã ãã§ãã èªåã§å€æãããšããããã€ããŒæ§æãäœæããã ãã§ããã®åŸãå¿ èŠãªãã¹ãŠã®ã¡ãœããããã©ãŒã ã§å©çšå¯èœã«ãªããŸãã
$this->socialite->driver('twitter')->user();
å¿ èŠãªããšã¯ããã¡ã€ã«ã®å é ã«é©åãªã¯ã©ã¹ãæ¥ç¶ããããšã ãã§ãã
Laravel \ Socialite \ Contracts \ FactoryãSocialiteFactoryãšããŠäœ¿çšããŸãã
è¿ãå°æ¥ãvkã®æ¿èªãè¿œå ããäºå®ã§ãã
å
Bladeã®å€æŽã®ãã¡ãéèŠãªå€æŽã1ã€ãããŸããããã¯ãéå»æ°æ¥éã§ã³ãã¥ããã£ãåæ§ã®è³ªåãå€æ°äœæããããã§ãã ããã§ã{{link_to_routeïŒ 'login_path'ïŒ}}ã¿ã°ãš{{{link_to_routeïŒ 'login_path'ïŒ}}}ã¿ã°ã®äž¡æ¹ããšã¹ã±ãŒããããã³ãŒãã€ã³ãžã§ã¯ã·ã§ã³ã®ãªã¹ã¯ãæžããããã«ããã¹ããšããŠè¡šç€ºãããŸãã
代ããã«ãã³ã³ã¹ãã©ã¯ãã䜿çšããå¿ èŠããããŸã
{!! link_to_route('login_path') !!}
ãšããã§ãBladeã®æ°ããããŒãžã§ã³ãžã®ç§»è¡ã容æã«ããããã«ãã¿ã°ãå€ããã®ã«çœ®ãæããããšãã§ããŸãã
ãã¬ãŒã:: setRawTagsïŒ$ openTagã$ closeTagïŒ;
ãã®åŸããã¹ãŠã®ã¢ã€ãã¢ãæžãçŽãå¿ èŠã¯ãããŸããã
ãŸãšã
5çªç®ã®ããŒãžã§ã³ã¯ããã®ãšããµã€ãã£ã³ã°ãªç¬éããŸã 延æããŠããå Žåã«ãLaravelã«ç²Ÿéãå§ããã¹ãããŒãžã§ã³ã§ãã ãã©ã°ã€ã³ã®å€§éšåã¯ãã§ã«ãã¬ãŒã ã¯ãŒã¯ã®æ°ããããŒãžã§ã³ããµããŒãããŠãããç¶²çŸ çãªããã¥ã¡ã³ãã¯ãªãªãŒã¹ã®æºåãã§ããŠããŸãã ç§ã®æèŠã§ã¯ãLaravelã¯ãè¿å¹Žã®phpã³ãã¥ããã£ã§æãèå³æ·±ããææãªãããžã§ã¯ãã§ãã 圌ãæ¯æ¥ãŸããŸãå€ãã®æ¯æè ãåŒãä»ããæ¹æ³ãèŠãã®ã¯çŽ æŽãããããšã§ãã
Laravelã®è©³çŽ°ã«ã€ããŠã¯ã次ã®åœ¹ç«ã€ãªãœãŒã¹ãã芧ãã ããã
⢠laravel.com
⢠laravel.io
⢠laracasts.com
ãã¶ãç§ã¯äœããéããããããå人çã«æžããŠããããä¿®æ£ããŸãã ãæž èŽããããšãããããŸããïŒ èšäºãã圹ã«ç«ãŠã°å¹žãã§ãã