Laravel 라우팅에서 주석을 사용하는 방법
7695 단어 PHP라라벨laravel-collective
이 기사는?
라라벨의 라우팅은 web.php를 사용하는 것이 일반적이지만 LaravelCollective/annotations
이 기사는 주석에서 라우팅을 수행하는 이점과 그 방법을 요약합니다.
어노테이션으로 라우팅하는 이점
web.php를 사용한 라우팅은 1파일로 라우팅을 관리하는 것으로 일람성이 있어 보기 쉬운 반면, 여러 사람이 개발을 하려고 했을 때 web.php가 충돌하는 확률이 높아져 버립니다.
어노테이션을 사용하여 라우팅을 설명하는 파일을 구분하여 충돌을 줄일 수 있습니다.
어노테이션으로 라우팅하는 방법
전제
이 기사에서는 Laravel에서 프로젝트를 만들 수 있고 어떤 방식으로 배포하는 방법이 있다고 가정합니다.
Laravel 프로젝트 만들기
Laravel 프로젝트 만들기 명령
composer create-project laravel/laravel sample_laravel_annotation
배포해 보고 welcome 화면이 표시되는지 확인해 봅니다.
아래와 같이 welcome 화면이 표시되면 프로젝트 작성에 성공하고 있습니다.
Laravel Collective 설치
Laravel Collective 설치 명령
cd sample_laravel_annotation
composer require laravelcollective/annotations
Service Provider 만들기
Service Provider 만들기 명령
php artisan make:provider AnnotationsServiceProvider
위의 명령을 실행하면 app/Providers/AnnotationsServiceProvider.php
가 생성됩니다.
Service Provider 편집
작성한 Service Provider를 기초로 아래와 같이 편집을 실시합니다.
app/Providers/AnnotationsServiceProvider.php<?php
namespace App\Providers;
use Collective\Annotations\AnnotationsServiceProvider as ServiceProvider;
class AnnotationsServiceProvider extends ServiceProvider {
/**
* The classes to scan for event annotations.
*
* @var array
*/
protected $scanEvents = [];
/**
* The classes to scan for route annotations.
*
* @var array
*/
protected $scanRoutes = [];
/**
* The classes to scan for model annotations.
*
* @var array
*/
protected $scanModels = [];
/**
* Determines if we will auto-scan in the local environment.
*
* @var bool
*/
protected $scanWhenLocal = true;
/**
* Determines whether or not to automatically scan the controllers
* directory (App\Http\Controllers) for routes
*
* @var bool
*/
protected $scanControllers = true;
/**
* Determines whether or not to automatically scan all namespaced
* classes for event, route, and model annotations.
*
* @var bool
*/
protected $scanEverything = true;
}
Service Provider 등록
추가한 Service Provider를 config/app.php
에 기재합니다.
config/app.php (中略)
'providers' => [
(中略)
App\Providers\AnnotationsServiceProvider::class,
],
(中略)
컨트롤러 작성
지금까지 준비가 되어 있기 때문에 실제로 주석을 달는 Controller를 작성합니다.
모처럼이므로 여러 개의 Controller를 만들어 라우팅할 수 있도록 합니다.
작성 명령
php artisan make:controller HogeController
php artisan make:controller FugaController
위를 실행하면 app/Http/Controllers/HogeController.php
및 app/Http/Controllers/FugaController.php
가 만들어집니다.
HogeController 편집 내용
HogeController를 아래와 같이 주석을 사용하여 편집합니다.
app/Http/Controllers/HogeController.php<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
class HogeController extends Controller
{
/**
* @Get("/hoge")
*/
public function index()
{
return 'hoge';
}
}
FugaController 편집 내용
FugaController를 아래와 같이 주석을 사용하여 편집합니다.
app/Http/Controllers/FugaController.php<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
class FugaController extends Controller
{
/**
* @Get("/fuga")
*/
public function index()
{
return 'fuga';
}
}
이제 준비가 되었으므로 각각의 화면으로 전환해 보려고 합니다.
/hoge로 전환
/fuga로 전환
무사히 어노테이션을 사용하여 라우팅을 할 수있었습니다.
끝에
이 기사에서는 주석을 사용하여 라우팅을 수행하는 것을 메인에게 말하고 있기 때문에 단점은 언급하지 않았습니다만, 코멘트 아웃 부분에 주석이 있는 것은 이 기법을 모르는 사람으로부터 보면 직관적입니다. 아니기 때문에 이것이 기인한 버그가 일어나거나 하는 것은 아닐까라고도 생각했습니다.
사용할지 사용하지 않을지는 프로젝트 멤버의 스킬셋이나 인원수를 잘 생각한 후에 결정하는 것이 좋을 것이라고 생각합니다.
이번에 사용한 코드의 샘플은 아래에 배치합니다.
htps : // 기주 b. 코 m / 키하라 타카 히로 / 사 mp 〇
Reference
이 문제에 관하여(Laravel 라우팅에서 주석을 사용하는 방법), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/kihara-takahiro/items/6716edd198a535c97f34
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
web.php를 사용한 라우팅은 1파일로 라우팅을 관리하는 것으로 일람성이 있어 보기 쉬운 반면, 여러 사람이 개발을 하려고 했을 때 web.php가 충돌하는 확률이 높아져 버립니다.
어노테이션을 사용하여 라우팅을 설명하는 파일을 구분하여 충돌을 줄일 수 있습니다.
어노테이션으로 라우팅하는 방법
전제
이 기사에서는 Laravel에서 프로젝트를 만들 수 있고 어떤 방식으로 배포하는 방법이 있다고 가정합니다.
Laravel 프로젝트 만들기
Laravel 프로젝트 만들기 명령
composer create-project laravel/laravel sample_laravel_annotation
배포해 보고 welcome 화면이 표시되는지 확인해 봅니다.
아래와 같이 welcome 화면이 표시되면 프로젝트 작성에 성공하고 있습니다.
Laravel Collective 설치
Laravel Collective 설치 명령
cd sample_laravel_annotation
composer require laravelcollective/annotations
Service Provider 만들기
Service Provider 만들기 명령
php artisan make:provider AnnotationsServiceProvider
위의 명령을 실행하면 app/Providers/AnnotationsServiceProvider.php
가 생성됩니다.
Service Provider 편집
작성한 Service Provider를 기초로 아래와 같이 편집을 실시합니다.
app/Providers/AnnotationsServiceProvider.php<?php
namespace App\Providers;
use Collective\Annotations\AnnotationsServiceProvider as ServiceProvider;
class AnnotationsServiceProvider extends ServiceProvider {
/**
* The classes to scan for event annotations.
*
* @var array
*/
protected $scanEvents = [];
/**
* The classes to scan for route annotations.
*
* @var array
*/
protected $scanRoutes = [];
/**
* The classes to scan for model annotations.
*
* @var array
*/
protected $scanModels = [];
/**
* Determines if we will auto-scan in the local environment.
*
* @var bool
*/
protected $scanWhenLocal = true;
/**
* Determines whether or not to automatically scan the controllers
* directory (App\Http\Controllers) for routes
*
* @var bool
*/
protected $scanControllers = true;
/**
* Determines whether or not to automatically scan all namespaced
* classes for event, route, and model annotations.
*
* @var bool
*/
protected $scanEverything = true;
}
Service Provider 등록
추가한 Service Provider를 config/app.php
에 기재합니다.
config/app.php (中略)
'providers' => [
(中略)
App\Providers\AnnotationsServiceProvider::class,
],
(中略)
컨트롤러 작성
지금까지 준비가 되어 있기 때문에 실제로 주석을 달는 Controller를 작성합니다.
모처럼이므로 여러 개의 Controller를 만들어 라우팅할 수 있도록 합니다.
작성 명령
php artisan make:controller HogeController
php artisan make:controller FugaController
위를 실행하면 app/Http/Controllers/HogeController.php
및 app/Http/Controllers/FugaController.php
가 만들어집니다.
HogeController 편집 내용
HogeController를 아래와 같이 주석을 사용하여 편집합니다.
app/Http/Controllers/HogeController.php<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
class HogeController extends Controller
{
/**
* @Get("/hoge")
*/
public function index()
{
return 'hoge';
}
}
FugaController 편집 내용
FugaController를 아래와 같이 주석을 사용하여 편집합니다.
app/Http/Controllers/FugaController.php<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
class FugaController extends Controller
{
/**
* @Get("/fuga")
*/
public function index()
{
return 'fuga';
}
}
이제 준비가 되었으므로 각각의 화면으로 전환해 보려고 합니다.
/hoge로 전환
/fuga로 전환
무사히 어노테이션을 사용하여 라우팅을 할 수있었습니다.
끝에
이 기사에서는 주석을 사용하여 라우팅을 수행하는 것을 메인에게 말하고 있기 때문에 단점은 언급하지 않았습니다만, 코멘트 아웃 부분에 주석이 있는 것은 이 기법을 모르는 사람으로부터 보면 직관적입니다. 아니기 때문에 이것이 기인한 버그가 일어나거나 하는 것은 아닐까라고도 생각했습니다.
사용할지 사용하지 않을지는 프로젝트 멤버의 스킬셋이나 인원수를 잘 생각한 후에 결정하는 것이 좋을 것이라고 생각합니다.
이번에 사용한 코드의 샘플은 아래에 배치합니다.
htps : // 기주 b. 코 m / 키하라 타카 히로 / 사 mp 〇
Reference
이 문제에 관하여(Laravel 라우팅에서 주석을 사용하는 방법), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/kihara-takahiro/items/6716edd198a535c97f34
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
composer create-project laravel/laravel sample_laravel_annotation
cd sample_laravel_annotation
composer require laravelcollective/annotations
php artisan make:provider AnnotationsServiceProvider
<?php
namespace App\Providers;
use Collective\Annotations\AnnotationsServiceProvider as ServiceProvider;
class AnnotationsServiceProvider extends ServiceProvider {
/**
* The classes to scan for event annotations.
*
* @var array
*/
protected $scanEvents = [];
/**
* The classes to scan for route annotations.
*
* @var array
*/
protected $scanRoutes = [];
/**
* The classes to scan for model annotations.
*
* @var array
*/
protected $scanModels = [];
/**
* Determines if we will auto-scan in the local environment.
*
* @var bool
*/
protected $scanWhenLocal = true;
/**
* Determines whether or not to automatically scan the controllers
* directory (App\Http\Controllers) for routes
*
* @var bool
*/
protected $scanControllers = true;
/**
* Determines whether or not to automatically scan all namespaced
* classes for event, route, and model annotations.
*
* @var bool
*/
protected $scanEverything = true;
}
(中略)
'providers' => [
(中略)
App\Providers\AnnotationsServiceProvider::class,
],
(中略)
php artisan make:controller HogeController
php artisan make:controller FugaController
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
class HogeController extends Controller
{
/**
* @Get("/hoge")
*/
public function index()
{
return 'hoge';
}
}
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
class FugaController extends Controller
{
/**
* @Get("/fuga")
*/
public function index()
{
return 'fuga';
}
}
이 기사에서는 주석을 사용하여 라우팅을 수행하는 것을 메인에게 말하고 있기 때문에 단점은 언급하지 않았습니다만, 코멘트 아웃 부분에 주석이 있는 것은 이 기법을 모르는 사람으로부터 보면 직관적입니다. 아니기 때문에 이것이 기인한 버그가 일어나거나 하는 것은 아닐까라고도 생각했습니다.
사용할지 사용하지 않을지는 프로젝트 멤버의 스킬셋이나 인원수를 잘 생각한 후에 결정하는 것이 좋을 것이라고 생각합니다.
이번에 사용한 코드의 샘플은 아래에 배치합니다.
htps : // 기주 b. 코 m / 키하라 타카 히로 / 사 mp 〇
Reference
이 문제에 관하여(Laravel 라우팅에서 주석을 사용하는 방법), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/kihara-takahiro/items/6716edd198a535c97f34텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)