Laavel 5 route, 이벤트 변형
annotation은 호스트에서 끊어져 제3자가 되었다.
모조 포장
Laavel 5 의 상황
본론으로 들어가기 전까진 지금의 상황입니다
지금 체크하고 계신 분들은 Laavel5가 2015년 1월에 나올 가능성이 높다는 걸 알고 계십니다.
곧 낡아질 수 있다는 메시지도 있고요.
또한, 현재(2014/12/01)β버전 없음
개발판을 설치한 후 5의 현재 상태에서 사용할 수 있다
간단하게 사용하면 크게 달라지지 않아요.
Laavel 패키지 개발자, 핵심에 익숙한 중급 및 고급
4보다 편리하고 쉽게 확장할 수 있는 방향
그럼 5에 추가된 루트와 이벤트 요청!
Laravel5 install
몇 가지 설치 방법이 있지만 평소와 같은 방법으로 개발판을 설치할 수 있다$ composer create-project laravel/laravel プロジェクト名 --prefer-dist dev-develop
php artisan serve가 삭제된 것 같아서 간단하게 시작하려는 경우$ php -S 127.0.0.1:8000 -t 'public/'
내장 서버만 시작
실행 환경의 지정 방법이 변경되었습니다
프로젝트 경로의 .env.sample
를 .env
등으로 변경하십시오.
에 기술된 APP_ENV=local
에서 실행 환경 변경 가능
(물론 이전과 같은 방법을 사용할 수도 있으니 원본 코드를 읽으세요)
Laravel5 Router
표준router
이전과 마찬가지로 routes.php
에서 경로를 기술할 수 있다
설치 즉시 이동할 수 있도록 몇 가지 루트 설명이 있습니다
파사드의 기술은 아니지만 이 근처에서 누군가가 나중에 쓸 거야!
app/Http/routes.php$router->get('/', 'WelcomeController@index');
$router->get('/home', 'HomeController@index');
달러 루터\Illuminate\Routing\Router
대상은 특별한 변화가 없다
서비스 공급업체에서 자유롭게 수행할 수 있는 다양한 작업으로 확장app/Providers/RouterServiceProvider.php
바로 그거예요.
컨트롤러의 명칭 공간은 기본적으로 다음과 같다.protected $namespace = 'App\Http\Controllers';
에서 기술한 일은 생략할 수 있지만, 특별히 사용하지 않아도 괜찮다
사용하지 않는 경우는 이전 그룹이 지정한 것과 같습니다
app/Http/routes.php$router->group(['namespace' => 'App\Http\Controllers'], function($router) {
$router->get('/', 'WelcomeController@index');
$router->get('/home', 'HomeController@index');
}
);
이용 방법
그럼 공회전을 이용해서 길을 만들어 보겠습니다.app/Http/routes.php
에 기술된 내용은 논평할 것이다.$ php artisan route:list
디스플레이가 없음을 확인하십시오. 디스플레이가 있으면 comple 파일이 있어야 합니다$ php artisan clear-compiled
또는 삭제storage/framework/compiled.php
라우팅 가능한 초대Illuminate\Routing\Annotations\Annotations
초대하다
알맞은 물건
대상@Controller
$router->controller()
카테고리@Resource
$router->resource()
카테고리@Middleware
Filter 처리 등
학급 방법@Where
맞다
학급 방법@Get
GET
메서드@Post
POST
메서드@Put
PUT
메서드@Patch
PATCH
메서드@Delete
DELETE
메서드@Options
OPTIONS
메서드
방법 중 기술한 예
간단한 Get, Post 등 사용
app/Http/Controllers/SampleController.phpnamespace App\Http\Controllers;
class SampleController extends Controller
{
/**
* @Get("sample")
* @return string
*/
public function sample()
{
return "sample";
}
}
명령을 사용하여 GET 프로세스에서 사용할 Sample 방법을 지정합니다.
URI는 /sample
그리고 아까 app/Providers/RouterServiceProvider.php
에 다음과 같은 내용을 추가합니다.
app/Providers/RouterServiceProvider.php protected $scan = [
'App\Http\Controllers\SampleController'
];
다음은 Controller의 시뮬레이션을 스캔하여 자동으로 경로를 만듭니다$ php artisan route:scan
storage/framework/routes.scanned.php 파일을 만들거나 원래 시작한 사람이 추가됩니다$router->get('sample', [
'uses' => 'App\Http\Controllers\SampleController@sample',
'as' => NULL,
'middleware' => [],
'where' => [],
'domain' => NULL,
]);
브라우저 등을 방문하여 표시 여부를 확인하십시오sample
!
스프링 프레임워크의 bean 파일의 루트 버전 같은 거예요.
또한 스캔하지 않아도app/Providers/RouterServiceProvider.php
에서 다음 속성을 활성화합니다.
자동으로 추가됩니다!protected $scanWhenLocal = true;
다른 포스트 같은 것도 거의 똑같아요.
다음은 필터와 루트의 이름을 지어보도록 하겠습니다.
처음 등록된 필터는app/Http/Kernel.php
에서 auth를 사용합니다.
분명히 누군가가 상세하게 쓸 거야! /**
* @Get("sample", as="sample", middleware={"auth"})
* @return string
*/
public function sample()
{
return "sample";
}
scan을 다시 실행하려면route:list로 확인하십시오
브라우저에서 방문하면 로그인 화면으로 이동합니다. (준비가 되지 않았기 때문에 잘못된 화면일 것입니다.)
middleware와 when은 몇 개의 배열을 지정할 수 있습니다 /**
* @Get("sample/{id}", as="sample", middleware={"auth"}, where={"id": "[0-9]+"})
* @param $id
* @return string
*/
public function sample($id)
{
return "sample";
}
매개 변수를 필요로 하고 숫자 이외에 사용할 수 없는 루트의 경우 이렇게 됩니다
또한, 이전에 있는domain도 사용할 수 있기 때문에 같은 추가만 있으면 지정할 수 있습니다 /**
* @Get("sample")
* @Middleware({"auth"})
* @param $id
* @return string
*/
public function sample($id)
{
return "sample";
}
또한 Middleware 및 Where는 별도로 기술할 수 있습니다.
클래스에 설명된 예
이전 Resource 디렉터와 마찬가지로 지정namespace App\Http\Controllers;
/**
* @Resource("sample", only={"index"}, names={"index": "index.name"})
*/
class SampleController extends \App\Http\Controllers\Controller
{
public function index()
{
return "sample index";
}
}
URI/sample
각자의 방법을 루트에 등록
only 지정은 index만 사용
name이 지정되지 않으면,prefix에sample을 자동으로 부여합니다
모든 이름 지정
또한@Controller
초대를 통해prefix 권한 수여
실행할 항목 지정domain
/**
* @Resource("sample", only={"index"}, names={"index": "index.name"})
* @Controller(prefix="api", domain="app")
* @Middleware({"auth"})
*/
class SampleController extends \App\Http\Controllers\Controller
{
}
방법도 한층 더 기술하여 각양각색의 경로를 만들 수 있다
또 다른 여러 가지가 있는데, 스스로 시뮬레이션을 추가할 수 있다
이벤트에 관해서는 아직 쓰지 않았으니 다음에 쓰겠습니다
공유 라우팅
여러 명으로 구성된 팀이 개발했다면 모방만 했다면 이해하기 어려웠을 텐데
개발자의 취향에 따라 변형이 없는 두 가지 경로를 혼합하여 사용할 수 있다
routes.php를 삭제해야 하는 일은 없지만
초대 라우팅 우선 사용
또한, 이 경로들도route:cache 캐시를 통과할 수 있습니다
쓰면 길어요. 여기까지만 쓸게요.
Laravel5 event annotation
러터보다 훨씬 쉬워요.app/Providers/EventServiceProvider.php
기본 서비스 공급업체
러터와 마찬가지로 annotation을 이용하기 때문에 scan에서 배열을 사용합니다
서류는 어디에다 두어도 좋으니 내가 간단한 반을 만들게
app/Listener/SampleListener.phpnamespace App\listener;
class SampleListener
{
/**
* @hears("accessEvent")
*/
public function access()
{
echo "access";
}
}
단순히 문자열을 반환하는 간단한 이벤트입니다.@hears
에 이벤트 이름 추가
그럼 똑같이 스칸에 추가반을 넣어야 돼요.app/Providers/EventServiceProvider.php
class EventServiceProvider extends ServiceProvider
{
protected $scan = [
"App\Listener\SampleListener"
];
}
스캔 명령은$ php artisan event:scan
예, 그렇습니다.
실행 후 확인event.scanned.php
에 추가
물론 러터처럼 자동 추기도 가능합니다.$events->listen(array (
0 => 'accessEvent',
), 'App\listener\SampleListener@access');
방금 사용한 controller 사용namespace App\Http\Controllers;
use Illuminate\Contracts\Events\Dispatcher;
class SampleController extends Controller
{
/**
* @Get("sample")
* @return string
*/
public function sample(Dispatcher $event)
{
$event->fire('accessEvent');
}
}
어렵게 한 일이라 삽입법 없이 디스패치를 지정한다fire
에서 이벤트 발생
브라우저에서 액세스
access로 표시해야 합니다!
이름을 몇 개 지을 수 있어서 다양한 게임을 할 수 있어요. /**
* @hears({"accessEvent", "sample.event"})
*/
public function access()
{
echo "access";
}
각 기능은 모두 실제 설치된 코드에 기재되어 있다
다양한 시도하기 쉬운 설치 방법으로 루트 만들기 등!
Reference
이 문제에 관하여(Laavel 5 route, 이벤트 변형), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/ytake/items/1c6eb4aae06aaad554aa
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
몇 가지 설치 방법이 있지만 평소와 같은 방법으로 개발판을 설치할 수 있다
$ composer create-project laravel/laravel プロジェクト名 --prefer-dist dev-develop
php artisan serve가 삭제된 것 같아서 간단하게 시작하려는 경우$ php -S 127.0.0.1:8000 -t 'public/'
내장 서버만 시작실행 환경의 지정 방법이 변경되었습니다
프로젝트 경로의
.env.sample
를 .env
등으로 변경하십시오.에 기술된
APP_ENV=local
에서 실행 환경 변경 가능(물론 이전과 같은 방법을 사용할 수도 있으니 원본 코드를 읽으세요)
Laravel5 Router
표준router
이전과 마찬가지로 routes.php
에서 경로를 기술할 수 있다
설치 즉시 이동할 수 있도록 몇 가지 루트 설명이 있습니다
파사드의 기술은 아니지만 이 근처에서 누군가가 나중에 쓸 거야!
app/Http/routes.php$router->get('/', 'WelcomeController@index');
$router->get('/home', 'HomeController@index');
달러 루터\Illuminate\Routing\Router
대상은 특별한 변화가 없다
서비스 공급업체에서 자유롭게 수행할 수 있는 다양한 작업으로 확장app/Providers/RouterServiceProvider.php
바로 그거예요.
컨트롤러의 명칭 공간은 기본적으로 다음과 같다.protected $namespace = 'App\Http\Controllers';
에서 기술한 일은 생략할 수 있지만, 특별히 사용하지 않아도 괜찮다
사용하지 않는 경우는 이전 그룹이 지정한 것과 같습니다
app/Http/routes.php$router->group(['namespace' => 'App\Http\Controllers'], function($router) {
$router->get('/', 'WelcomeController@index');
$router->get('/home', 'HomeController@index');
}
);
이용 방법
그럼 공회전을 이용해서 길을 만들어 보겠습니다.app/Http/routes.php
에 기술된 내용은 논평할 것이다.$ php artisan route:list
디스플레이가 없음을 확인하십시오. 디스플레이가 있으면 comple 파일이 있어야 합니다$ php artisan clear-compiled
또는 삭제storage/framework/compiled.php
라우팅 가능한 초대Illuminate\Routing\Annotations\Annotations
초대하다
알맞은 물건
대상@Controller
$router->controller()
카테고리@Resource
$router->resource()
카테고리@Middleware
Filter 처리 등
학급 방법@Where
맞다
학급 방법@Get
GET
메서드@Post
POST
메서드@Put
PUT
메서드@Patch
PATCH
메서드@Delete
DELETE
메서드@Options
OPTIONS
메서드
방법 중 기술한 예
간단한 Get, Post 등 사용
app/Http/Controllers/SampleController.phpnamespace App\Http\Controllers;
class SampleController extends Controller
{
/**
* @Get("sample")
* @return string
*/
public function sample()
{
return "sample";
}
}
명령을 사용하여 GET 프로세스에서 사용할 Sample 방법을 지정합니다.
URI는 /sample
그리고 아까 app/Providers/RouterServiceProvider.php
에 다음과 같은 내용을 추가합니다.
app/Providers/RouterServiceProvider.php protected $scan = [
'App\Http\Controllers\SampleController'
];
다음은 Controller의 시뮬레이션을 스캔하여 자동으로 경로를 만듭니다$ php artisan route:scan
storage/framework/routes.scanned.php 파일을 만들거나 원래 시작한 사람이 추가됩니다$router->get('sample', [
'uses' => 'App\Http\Controllers\SampleController@sample',
'as' => NULL,
'middleware' => [],
'where' => [],
'domain' => NULL,
]);
브라우저 등을 방문하여 표시 여부를 확인하십시오sample
!
스프링 프레임워크의 bean 파일의 루트 버전 같은 거예요.
또한 스캔하지 않아도app/Providers/RouterServiceProvider.php
에서 다음 속성을 활성화합니다.
자동으로 추가됩니다!protected $scanWhenLocal = true;
다른 포스트 같은 것도 거의 똑같아요.
다음은 필터와 루트의 이름을 지어보도록 하겠습니다.
처음 등록된 필터는app/Http/Kernel.php
에서 auth를 사용합니다.
분명히 누군가가 상세하게 쓸 거야! /**
* @Get("sample", as="sample", middleware={"auth"})
* @return string
*/
public function sample()
{
return "sample";
}
scan을 다시 실행하려면route:list로 확인하십시오
브라우저에서 방문하면 로그인 화면으로 이동합니다. (준비가 되지 않았기 때문에 잘못된 화면일 것입니다.)
middleware와 when은 몇 개의 배열을 지정할 수 있습니다 /**
* @Get("sample/{id}", as="sample", middleware={"auth"}, where={"id": "[0-9]+"})
* @param $id
* @return string
*/
public function sample($id)
{
return "sample";
}
매개 변수를 필요로 하고 숫자 이외에 사용할 수 없는 루트의 경우 이렇게 됩니다
또한, 이전에 있는domain도 사용할 수 있기 때문에 같은 추가만 있으면 지정할 수 있습니다 /**
* @Get("sample")
* @Middleware({"auth"})
* @param $id
* @return string
*/
public function sample($id)
{
return "sample";
}
또한 Middleware 및 Where는 별도로 기술할 수 있습니다.
클래스에 설명된 예
이전 Resource 디렉터와 마찬가지로 지정namespace App\Http\Controllers;
/**
* @Resource("sample", only={"index"}, names={"index": "index.name"})
*/
class SampleController extends \App\Http\Controllers\Controller
{
public function index()
{
return "sample index";
}
}
URI/sample
각자의 방법을 루트에 등록
only 지정은 index만 사용
name이 지정되지 않으면,prefix에sample을 자동으로 부여합니다
모든 이름 지정
또한@Controller
초대를 통해prefix 권한 수여
실행할 항목 지정domain
/**
* @Resource("sample", only={"index"}, names={"index": "index.name"})
* @Controller(prefix="api", domain="app")
* @Middleware({"auth"})
*/
class SampleController extends \App\Http\Controllers\Controller
{
}
방법도 한층 더 기술하여 각양각색의 경로를 만들 수 있다
또 다른 여러 가지가 있는데, 스스로 시뮬레이션을 추가할 수 있다
이벤트에 관해서는 아직 쓰지 않았으니 다음에 쓰겠습니다
공유 라우팅
여러 명으로 구성된 팀이 개발했다면 모방만 했다면 이해하기 어려웠을 텐데
개발자의 취향에 따라 변형이 없는 두 가지 경로를 혼합하여 사용할 수 있다
routes.php를 삭제해야 하는 일은 없지만
초대 라우팅 우선 사용
또한, 이 경로들도route:cache 캐시를 통과할 수 있습니다
쓰면 길어요. 여기까지만 쓸게요.
Laravel5 event annotation
러터보다 훨씬 쉬워요.app/Providers/EventServiceProvider.php
기본 서비스 공급업체
러터와 마찬가지로 annotation을 이용하기 때문에 scan에서 배열을 사용합니다
서류는 어디에다 두어도 좋으니 내가 간단한 반을 만들게
app/Listener/SampleListener.phpnamespace App\listener;
class SampleListener
{
/**
* @hears("accessEvent")
*/
public function access()
{
echo "access";
}
}
단순히 문자열을 반환하는 간단한 이벤트입니다.@hears
에 이벤트 이름 추가
그럼 똑같이 스칸에 추가반을 넣어야 돼요.app/Providers/EventServiceProvider.php
class EventServiceProvider extends ServiceProvider
{
protected $scan = [
"App\Listener\SampleListener"
];
}
스캔 명령은$ php artisan event:scan
예, 그렇습니다.
실행 후 확인event.scanned.php
에 추가
물론 러터처럼 자동 추기도 가능합니다.$events->listen(array (
0 => 'accessEvent',
), 'App\listener\SampleListener@access');
방금 사용한 controller 사용namespace App\Http\Controllers;
use Illuminate\Contracts\Events\Dispatcher;
class SampleController extends Controller
{
/**
* @Get("sample")
* @return string
*/
public function sample(Dispatcher $event)
{
$event->fire('accessEvent');
}
}
어렵게 한 일이라 삽입법 없이 디스패치를 지정한다fire
에서 이벤트 발생
브라우저에서 액세스
access로 표시해야 합니다!
이름을 몇 개 지을 수 있어서 다양한 게임을 할 수 있어요. /**
* @hears({"accessEvent", "sample.event"})
*/
public function access()
{
echo "access";
}
각 기능은 모두 실제 설치된 코드에 기재되어 있다
다양한 시도하기 쉬운 설치 방법으로 루트 만들기 등!
Reference
이 문제에 관하여(Laavel 5 route, 이벤트 변형), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/ytake/items/1c6eb4aae06aaad554aa
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
$router->get('/', 'WelcomeController@index');
$router->get('/home', 'HomeController@index');
protected $namespace = 'App\Http\Controllers';
$router->group(['namespace' => 'App\Http\Controllers'], function($router) {
$router->get('/', 'WelcomeController@index');
$router->get('/home', 'HomeController@index');
}
);
$ php artisan route:list
$ php artisan clear-compiled
namespace App\Http\Controllers;
class SampleController extends Controller
{
/**
* @Get("sample")
* @return string
*/
public function sample()
{
return "sample";
}
}
protected $scan = [
'App\Http\Controllers\SampleController'
];
$ php artisan route:scan
$router->get('sample', [
'uses' => 'App\Http\Controllers\SampleController@sample',
'as' => NULL,
'middleware' => [],
'where' => [],
'domain' => NULL,
]);
protected $scanWhenLocal = true;
/**
* @Get("sample", as="sample", middleware={"auth"})
* @return string
*/
public function sample()
{
return "sample";
}
/**
* @Get("sample/{id}", as="sample", middleware={"auth"}, where={"id": "[0-9]+"})
* @param $id
* @return string
*/
public function sample($id)
{
return "sample";
}
/**
* @Get("sample")
* @Middleware({"auth"})
* @param $id
* @return string
*/
public function sample($id)
{
return "sample";
}
namespace App\Http\Controllers;
/**
* @Resource("sample", only={"index"}, names={"index": "index.name"})
*/
class SampleController extends \App\Http\Controllers\Controller
{
public function index()
{
return "sample index";
}
}
/**
* @Resource("sample", only={"index"}, names={"index": "index.name"})
* @Controller(prefix="api", domain="app")
* @Middleware({"auth"})
*/
class SampleController extends \App\Http\Controllers\Controller
{
}
러터보다 훨씬 쉬워요.
app/Providers/EventServiceProvider.php
기본 서비스 공급업체러터와 마찬가지로 annotation을 이용하기 때문에 scan에서 배열을 사용합니다
서류는 어디에다 두어도 좋으니 내가 간단한 반을 만들게
app/Listener/SampleListener.php
namespace App\listener;
class SampleListener
{
/**
* @hears("accessEvent")
*/
public function access()
{
echo "access";
}
}
단순히 문자열을 반환하는 간단한 이벤트입니다.@hears
에 이벤트 이름 추가그럼 똑같이 스칸에 추가반을 넣어야 돼요.
app/Providers/EventServiceProvider.php
class EventServiceProvider extends ServiceProvider
{
protected $scan = [
"App\Listener\SampleListener"
];
}
스캔 명령은$ php artisan event:scan
예, 그렇습니다.실행 후 확인
event.scanned.php
에 추가물론 러터처럼 자동 추기도 가능합니다.
$events->listen(array (
0 => 'accessEvent',
), 'App\listener\SampleListener@access');
방금 사용한 controller 사용namespace App\Http\Controllers;
use Illuminate\Contracts\Events\Dispatcher;
class SampleController extends Controller
{
/**
* @Get("sample")
* @return string
*/
public function sample(Dispatcher $event)
{
$event->fire('accessEvent');
}
}
어렵게 한 일이라 삽입법 없이 디스패치를 지정한다fire
에서 이벤트 발생브라우저에서 액세스
access로 표시해야 합니다!
이름을 몇 개 지을 수 있어서 다양한 게임을 할 수 있어요.
/**
* @hears({"accessEvent", "sample.event"})
*/
public function access()
{
echo "access";
}
각 기능은 모두 실제 설치된 코드에 기재되어 있다다양한 시도하기 쉬운 설치 방법으로 루트 만들기 등!
Reference
이 문제에 관하여(Laavel 5 route, 이벤트 변형), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/ytake/items/1c6eb4aae06aaad554aa텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)