Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

XECON2014 Laravel 프레임워크 소개

3,563 views

Published on

2014 XECON + PHPFEST 에서 발표한
Laravel 프레임워크 소개입니다.

Published in: Technology
  • Be the first to comment

XECON2014 Laravel 프레임워크 소개

  1. 1. 2014.11.08 Session 3-3 XECon + PHPFest 2014 Laravel 프레임워크로 10분안에 블로그 만들어 보기 @findstar 안정수 Facebook Modern PHP Group
  2. 2. 2014.11.08 Session 3-3 XECon + PHPFest 2014 1. 발표 소개 2. Laravel 프레임워크란? 3. Laravel 의 이슈 원인 4. Laravel 의 주요 핵심 5. 10분 블로그 코딩 6. 마치며 부제 : Laravel 소개 + 10분 블로그 라이브 코딩
  3. 3. 2014.11.08 Session 3-3 XECon + PHPFest 2014 1. 발표 소개 - 발표자 - 계기 - 프레임워크 2. Laravel 프레임워크란? 3. Laravel 의 이슈 원인 4. Laravel 의 주요 기능 5. 10분 블로그 코딩 6. 마치며
  4. 4. 2014.11.08 Session 3-3 XECon + PHPFest 2014 Introduce 4 안정수 육아에 시달리고 있는 딸바보 개발자 PHP, JAVA, Objective-C 최근까지 전세계 날씨 분석 시스템을 만들었 습니다. @findstar
  5. 5. 2014.11.08 Session 3-3 XECon + PHPFest 2014 I need a framework 5 1. 최신의 웹 개발 트렌드를 잘 녹여낸 프레임워크 2. 장기적으로 전망있는 3. 최신 PHP 버전에서 사용 가능한
  6. 6. 2014.11.08 Session 3-3 XECon + PHPFest 2014 PHP frameworks 6 Codeigniter Zend cakePHP Fuelphp Yii Symfony Laravel Slim
  7. 7. 2014.11.08 Session 3-3 XECon + PHPFest 2014 1. 발표 소개 2. Laravel 프레임워크란? - Laravel - 목적 - 인기도 3. Laravel 의 이슈 원인 4. Laravel 의 주요 기능 5. 10분 블로그 코딩 6. 마치며
  8. 8. 2014.11.08 Session 3-3 XECon + PHPFest 2014 Laravel • 2011~ now version 4.2 • Free, open-source • MVC framework • MIT License. • Full-stack framework • laravel.com 8 Taylor Otwell
  9. 9. Objectives XECon + PHPFest 2014 9 2014.11.08 Session 3-3 즐거운 창의적인 엘레강스
  10. 10. Popularity XECon + PHPFest 2014 2014년 가장 유망한 프레임워크 2013.12.28 sitepoint 10 1 Laravel 2 Phalcon 3 Symfony2 4 Codeigniter http://www.sitepoint.com/best-php-frameworks-2014/ 2014.11.08 Session 3-3 #1 25.85%
  11. 11. XECon + PHPFest 2014 11 Popularity Github 가장 인기 있는 PHP 프로젝트 since August 2014 12,913 Most popular and watched Project 2014.11.08 Session 3-3 #2
  12. 12. XECon + PHPFest 2014 12 Popularity 구글 트렌드 (from 2004 to current) 구글 트렌드 링크 2014.11.08 Session 3-3 #3
  13. 13. 2014.11.08 Session 3-3 XECon + PHPFest 2014 1. 발표 소개 2. Laravel 프레임워크란? 3. Laravel 이슈 원인 - Modern - Full stack - Easy to learn 4. Laravel 의 주요 기능 5. 10분 블로그 코딩 6. 마치며
  14. 14. 2014.11.08 Session 3-3 XECon + PHPFest 2014 #0 Modern PHP 2013 9월 PHP 5.5 Web summit • OOP - Design Pattern • MVC • Composer • Autoloading • PSR • Testable 14 2014 NOMAD PHP EU Ben Ramsey PHP contributor
  15. 15. 2014.11.08 Session 3-3 XECon + PHPFest 2014 #1 Laravel • OOP • Composer • Autoloading • Namespace • PSR-0, PSR-4, PSR-1 • Testable • php 5.4 15
  16. 16. #2 Extendable XECon + PHPFest 2014 16 SSH URL Redis Event DB Crypt Cookie Session Cache Schema View Queue Auth Mail Log File Panigator Input Hash Validator Form HTML Route Lang Redirect Request Response 2014.11.08 Session 3-3
  17. 17. 2014.11.08 Session 3-3 XECon + PHPFest 2014 #2 Extendable 17 Cloud Front-end Devel Google App Engine Amazon EC2 Fortrabbit Pagoda Box digital ocean Heroku Linode OpenShift Elixir Gulp Bower AngularJS Env controller Vagrant Enboy Homested Deploy
  18. 18. #3 Easy To Learn XECon + PHPFest 2014 18 어렵지 않아요 = 해치지 않아요 = 물지 않아요 2014.11.08 Session 3-3
  19. 19. XECon + PHPFest 2014 #3-1 Good Documents, APIS 19 laravel.com/docs/installation laravel.com/api 2014.11.08 Session 3-3
  20. 20. #3-2 Laracasts XECon + PHPFest 2014 • 200여개의 동영상 강의 • 데일리 업데이트 • 라라벨, PHP, IDE, ENV • 유료, 무료 강의 제공 20 2014.11.08 Session 3-3
  21. 21. XECon + PHPFest 2014 2014.11.08 Session 3-3 #3-3 Cool Community 21 공식 포럼 Freenode #Laravel laravel.kr 페이스북 구글 플러스 링크드인
  22. 22. 2014.11.08 Session 3-3 XECon + PHPFest 2014 #3-4 Elegant Syntax $userName = Input::get('userName'); Route::controller('products', 'ProductController'); Session::put('key', 'value'); Mail::send('sign.welcome', $data, $callback); $value = Cache::get('key'); 22
  23. 23. 2014.11.08 Session 3-3 XECon + PHPFest 2014 1. 발표 소개 2. Laravel 프레임워크란? 3. Laravel 이슈 원인 4. Laravel 의 주요 기능 - MVC - Request Cycle - IoC Container - Artisan CLI 5. 10분 블로그 코딩 6. 마치며
  24. 24. 2014.11.08 Session 3-3 XECon + PHPFest 2014 MVC Framework • Model : Eloquent ORM • View : Blade Template • Control : RESTful Controller 24
  25. 25. MVC Flow XECon + PHPFest 2014 25 Route Controller 2014.11.08 Session 3-3 Request Response Model View WEB SERVER
  26. 26. Request Cycle XECon + PHPFest 2014 26 Phase 4. run Phase 1. Autoloading Phase 2. Application Set Phase 3. bootstrap composer autoloading serviceprovider file path user config route resonse 2014.11.08 Session 3-3
  27. 27. IoC Container XECon + PHPFest 2014 27 2014.11.08 Session 3-3 Inversion Of Control 클래스 의존성을 관리하는 강력한 도구 DI - 의존성 삽입(Dependency injection)을 통해서 하드코딩된 클래스간 의존성을 제거하는 하나의 방법 대신에 클래스의 의존성은 런타임시에 삽입되어 강력한 유연성을 제공하게 되고, 이로 인해 의존성 구현이 쉽게 변경될 수 있게 됨을 이야기 합니다.
  28. 28. 2014.11.08 Session 3-3 XECon + PHPFest 2014 Artisan CLI • Laravel 에서 제공하는 Command Line Interface • 주요 코드 generation, cache, queue 컨트롤등의 역활을 수행 28
  29. 29. 2014.11.08 Session 3-3 SImple MVC Code XECon + PHPFest 2014 29 # in app/route.php Route::get('user/{id}', 'UserController@showProfile'); # in app/controllers/UserController.php class UserController extends BaseController { public function showProfile() { $user = User::find($id); return View::make('user.profile', array('user' => $user)); } } # use app/views/user/profile.blade.php
  30. 30. 2014.11.08 Session 3-3 XECon + PHPFest 2014 1. 발표 소개 2. Laravel 프레임워크란? 3. Laravel 이슈 원인 4. Laravel 의 주요 기능 5. 10분 블로그 코딩 - Install - Routing - Controller - Model - View 6. 마치며
  31. 31. 2014.11.08 Session 3-3 XECon + PHPFest 2014 10분 블로그 만들기 31
  32. 32. 2014.11.08 Session 3-3 XECon + PHPFest 2014 내가 이걸 왜 한다고 했을까 32
  33. 33. 2014.11.08 Session 3-3 XECon + PHPFest 2014 Live Coding 준비 33
  34. 34. 2014.11.08 Session 3-3 XECon + PHPFest 2014 Blog • Post - CRUD • Bootstrap CSS • MariaDB 34
  35. 35. Installation #1 XECon + PHPFest 2014 composer create-project laravel/laravel myproject --no-dev --prefer-dist 35 2014.11.08 Session 3-3
  36. 36. 2014.11.08 Session 3-3 XECon + PHPFest 2014 Installation #2 • app/storage 폴더의 권한 변경 $ chmod -R 777 app/storage • app/config 설정 database 연결 설정 app/config/database.php • debug 설정 개발을 용이하게 하기 위해서 debug 설정 app/config/app.php 36
  37. 37. 2014.11.08 Session 3-3 XECon + PHPFest 2014 Installation #3 • scaffolding 을 위한 composer 추가 • faker seeding 을 위한 faker 추가 composer.json 에서 require-dev 추가 “require-dev” : { “way/generators”: “~2.0” ,"fzaninotto/faker": "1.4.0" }, • composer udpate —dev -vvv composer.json 수정후 설치 • service provider 추가 app/config/app.php ‘WayGeneratorsGeneratorsServiceProvider', 추가 37
  38. 38. 2014.11.08 Session 3-3 XECon + PHPFest 2014 Installation #3 • composer udpate —dev -vvv composer.json 수정후 설치 • service provider 추가 app/config/app.php #service provider ‘WayGeneratorsGeneratorsServiceProvider', 추가 38
  39. 39. 2014.11.08 Session 3-3 XECon + PHPFest 2014 App run $ php artisan serve : 내장 서버를 활용해서 웹서버를 구동해줍니다. 39
  40. 40. 2014.11.08 Session 3-3 XECon + PHPFest 2014 Artisan scaffolding • Artisan CLI scaffolding 40 php artisan generate:scaffold post --fields="title:string, body:text"
  41. 41. 2014.11.08 Session 3-3 XECon + PHPFest 2014 Routing 등록 • 라우팅 룰 등록 기본 41 Route::resource('posts', 'PostsController');
  42. 42. 2014.11.08 Session 3-3 XECon + PHPFest 2014 Route Rule $ php artisan route 42
  43. 43. 2014.11.08 Session 3-3 XECon + PHPFest 2014 PostsController # in app/controllers/PostsController.php class PostsController extends BaseController { public function index() {} // /posts GET public function create() {} // /posts/create GET public function store() {} // /posts POST public function show($postId){} // /posts/{postId} GET public function edit($postId){} // /posts/{postId}/edit GET public function update($postId){} // /posts/{postId} PUT|PATCH public function destroy($postId){} // /posts/{postId} DELETE } 43
  44. 44. 2014.11.08 Session 3-3 XECon + PHPFest 2014 Models # in app/models/Post.php 44 class Post extends Eloquent { protected $guarded = ['id']; }
  45. 45. 2014.11.08 Session 3-3 XECon + PHPFest 2014 View <!doctype html> <html> <head> <meta charset="utf-8"> <link rel="stylesheet" href="//maxcdn.bootstrapcdn.com/bootstrap/3.3.0/css/ bootstrap.min.css"/> </head> <body> <div class="container"> <div class="row"> <div class="col-md-6 col-md-offset-3"> @yield('content') </div> </div> </div> </body> </html> master.blade.php 45
  46. 46. 2014.11.08 Session 3-3 XECon + PHPFest 2014 Live Coding! 46
  47. 47. 2014.11.08 Session 3-3 XECon + PHPFest 2014 제약 1. 국내의 다수 호스팅에서는 안되요. PHP 5.4 이상부터 사용 가능 2. 한글 자료가 많이 없어요 -> 시간이 약. 3. 국내에서 사례가 있나요? -> 아직 뚜렷한 레퍼런스는 없습니다. 4. 느리지 않나요? -> 코드 이그나이터 보다 느립니다. phalcon 보다는.. 엄청 느립니다. -> 대신 개발 생산성을 이야기 합니다. 47
  48. 48. 2014.11.08 Session 3-3 XECon + PHPFest 2014 One More Thing 48
  49. 49. 2014.11.08 Session 3-3 XECon + PHPFest 2014 laravel.kr 49
  50. 50. 2014.11.08 Session 3-3 XECon + PHPFest 2014 Q&A 50
  51. 51. XECon + PHPFest 2014 51 감사합니다. 2014.11.08 Session 3-3

×