17장 컴포저
17.1. 컴포저란?
17.2. 로컬 컴포넌트 레지스트리 둘러보기
"require": {
"php": ">=5.5.9",
"laravel/framework": "5.2.*",
"guzzlehttp/guzzle": "~5.3|~6.0",
"symfony/psr-http-message-bridge": "~0.2"
},
"require-dev": {
"fzaninotto/faker": "~1.4",
"mockery/mockery": "0.9.*",
"phpunit/phpunit": "~4.0",
"symfony/css-selector": "2.8.*|3.0.*",
"symfony/dom-crawler": "2.8.*|3.0.*"
},
"autoload": { ... }
"scripts": { ... }
17.3. 컴포넌트 가져오기 실습 I
# 콘솔 17-1 마크다운 컴포넌트 설치
$ composer require "erusev/parsedown-extra: ~0.7.1"
# Loading composer repositories with package information
# Updating dependencies (including require-dev)
# - Installing erusev/parsedown (1.6.0)
# Downloading: 100%
#
# - Installing erusev/parsedown-extra (0.7.1)
# Downloading: 100%
#
# Writing lock file
# Generating autoload files
# > php artisan optimize
# Generating optimized class loader
17.3.1. 컴포넌트 사용하기
// 코드 17-1 app/Http/routes.php
Route::get('markdown', function () {
$text =<<<EOT
# 마크다운 예제 1
이 문서는 [마크다운][1]으로 썼습니다. 화면에는 HTML로 변환되어 출력됩니다.
## 순서 없는 목록
- 첫 번째 항목
- 두 번째 항목[^1]
[1]: http://daringfireball.net/projects/markdown
[^1]: 두 번째 항목_ http://google.com
EOT;
return app(ParsedownExtra::class)->text($text);
});
17.4. 컴포넌트 가져오기 실습 II
# 콘솔 17-2 라라벨 디버그 바 설치
$ composer require barryvdh/laravel-debugbar:2.2.*
'provider'
키의 맨 끝에 디버그 바의 서비스 프로바이더를 추가한다.
// 코드 17-2 config/app.php
'providers' => [
// ...
Barryvdh\Debugbar\ServiceProvider::class,
],
$ php artisan vendor:publish --provider="Barryvdh\Debugbar\ServiceProvider"
17.4.1. 컴포넌트 사용
// 코드 17-3 app/Http/Controllers/ArticlesController.php
public function show($id)
{
$article = \App\Article::findOrFail($id);
debug($article);
return view('articles.show', compact('article'));
}
그림 17-1 덤프 메시지를 표시하는 라라벨 디버그 바
17.4.2. 코드 재구성
// 코드 17-4 app/Providers/AppServiceProvider.php
class AppServiceProvider extends ServiceProvider
{
public function boot() { ... }
public function register()
{
if ($this->app->environment('local')) {
$this->app->register(\Barryvdh\Debugbar\ServiceProvider::class);
}
}
}
17.5. install? update?
17.5.1. install
17.5.2. update
17.6. 문제 해결
17.7. 오토로드
public/index.php -> bootstrap/autoload.php -> vendor/autoload.php
17.8. 좋은 컴포넌트 찾기
17.9. 마치며
$ git commit -m '컴포저'
$ git tag 1017-composer