Laravel-CodiceFiscale은 이탈리아 CodiceFiscale
(즉, 세금 코드) 관리를위한 패키지입니다. 패키지를 사용하면 CodiceFiscale의 쉽게 검증 및 구문 분석이 가능합니다. Laravel에도 요청 유효성 검사를위한 편리한 사용자 정의 유효성 검사기를 제공하므로 Laravel에도 적합합니다.
라 라벨 | 패키지 |
---|---|
11.x | 2.X |
10.x | 1.X |
9.x | 1.X |
8.x | 1.X |
7.x | 1.X |
6.x | 1.X |
중요한 업데이트 : 이제 비 디퍼트 인
IstatRemoteCSVList
CITY DECODER를 사용하여 ISTAT에서 도시 코드를 동적으로로드 할 수 있습니다.
다음 명령을 실행하여 최신 적용 가능한 패키지 버전을 설치하십시오.
composer require robertogallea/laravel-codicefiscale:^2
앱 구성에서 서비스 제공 업체를 $providers
배열에 추가하십시오 (Laravel 5.4 이하) .
' providers ' => [
...
robertogallea LaravelCodiceFiscale CodiceFiscaleServiceProvider ::class,
],
유효성 검사 오류 메시지는 it
및 en
언어로 변환됩니다. 새 언어를 추가하려면 PR을 보내주십시오.
bootstrap/app.php
에서 서비스 제공 업체를 등록하십시오
$ app -> register (robertogallea LaravelCodiceFiscale CodiceFiscaleServiceProvider ::class);
패키지 구성을 사용자 정의하려면 구성 파일을 config/codicefiscale.php
로 내보내야합니다.
이것은 다음 명령을 시작하여 달성 할 수 있습니다.
php artisan vendor:publish --provider="robertogalleaLaravelCodiceFiscaleCodiceFiscaleServiceProvider" --tag="config"
다음 매개 변수를 구성 할 수 있습니다.
city-decoder
: 도시 코드 디코딩에 사용되는 클래스 (City Code Parsing 참조), InternationalCitiesStaticList
의 기본값.date-format
: 출생지 구문 분석에 사용되는 날짜 형식, 기본값은 'Ym-d'
입니다.labels
: male
과 female
에 사용되는 레이블, 기본값은 'M'
및 'F'
입니다. 이 명령으로 유효성 검사 변환을 게시하는 유효성 검사 메시지를 사용자 정의 할 수 있습니다.
php artisan vendor:publish --provider="robertogalleaLaravelCodiceFiscaleCodiceFiscaleServiceProvider" --tag="lang"
Codice Fiscale을 확인하려면 유효성 검사 규칙 배열에서 codice_fiscale
키워드를 사용하십시오.
public function rules ()
{
return [
' codicefiscale ' => ' codice_fiscale ' ,
//...
];
}
버전 1.9.0 에서 다른 양식 필드에 대한 코디스 회계를 검증하여 일치가 있는지 여부를 확인할 수 있습니다.
필요한 모든 필드를 지정해야합니다.
first_name
last_name
birthdate
place
gender
codice_fiscale
규칙에 매개 변수를 제공합니다.
예를 들어:
public function rules ()
{
return [
' codicefiscale ' => ' codice_fiscale:first_name=first_name_field,last_name=last_name_field,birthdate=birthdate_field,place=place_field,gender=gender_field ' ,
' first_name_field ' => ' required|string ' ,
' last_name_field ' => ' required|string ' ,
' birthdate_field ' => ' required|date ' ,
' place_field ' => ' required|string ' ,
' gender_field ' => ' required|string|max:1 ' ,
//...
];
}
제공된 CodiceFiscale과 입력 필드에서 생성 된 것이 일치하지 않으면 유효성 검사가 실패합니다.
Codice Fiscale은 robertogalleaLaravelCodiceFiscaleCodiceFiscale
클래스에 포장되어 유용한 유틸리티 방법으로이를 향상시킬 수 있습니다.
use robertogallea LaravelCodiceFiscale CodiceFiscale ;
. . .
try {
$ cf = new CodiceFiscale ();
$ result = $ cf -> parse ( ' RSSMRA95E05F205Z ' );
var_dump ( $ result );
} catch ( Exception $ exception ) {
echo $ exception ;
}
유효한 CodiceFiscale의 경우 다음 결과를 생성합니다.
[
" gender " => " M "
"birth_place" => " F205 "
"birth_place_complete" => " Milano " ,
" day " => " 05 "
"month" => " 05 "
"year" => " 1995 "
"birthdate" => Carbon @ 799632000 {
date: 1995 - 05 - 05 00 : 00 : 00.0 UTC (+ 00 : 00 )
}
]
오류의 경우 CodiceFiscale::parse()
CodiceFiscaleValidationException
을 던지고 정의 된 상수 중 하나를 $exception->getCode()
로 반환합니다.
CodiceFiscaleException::NO_ERROR
CodiceFiscaleException::NO_CODE
CodiceFiscaleException::WRONG_SIZE
CodiceFiscaleException::BAD_CHARACTERS
CodiceFiscaleException::BAD_OMOCODIA_CHAR
CodiceFiscaleException::WRONG_CODE
CodiceFiscaleException::MISSING_CITY_CODE
오히려 예외를 포착하고 싶지 않다면 CodiceFiscale::tryParse()
사용할 수 있습니다.
use robertogallea LaravelCodiceFiscale CodiceFiscale ;
. . .
$ cf = new CodiceFiscale ();
$ result = $ cf -> tryParse ( ' RSSMRA95E05F205Z ' );
if ( $ result ) {
var_dump ( $ cf -> asArray ());
} else {
echo $ cf -> getError ();
}
위와 동일한 값을 반환하면 $cf->isValid()
사용하여 CodiceFiscale이 유효하고 $cf->getError()
오류를 얻을 수 있는지 확인할 수 있습니다. 이것은 블레이드 템플릿에서 특히 유용합니다.
@ php ( $ cf = new robertogallea LaravelCodiceFiscale CodiceFiscale ())
@ if ( $ cf -> tryParse ( $ codicefiscale ))
<p><i class="fa fa-check" style="color:green"></i>{{ $ cf -> getCodiceFiscale ()}}</p>
@else
<p><i class="fa fa-check" style="color:red"></i>{{ $ cf -> getError ()-> getMessage ()}}</p>
@endif
CodiceFiscale
클래스는 입력 값에서 코디스 회계 문자열을 생성하는 데 사용될 수 있습니다.
$ first_name = ' Mario ' ;
$ last_name = ' Rossi ' ;
$ birth_date = ' 1995-05-05 ' ; // or Carbon::parse('1995-05-05')
$ birth_place = ' F205 ' ; // or 'Milano'
$ gender = ' M ' ;
$ cf_string = CodiceFiscale :: generate ( $ first_name , $ last_name , $ birth_date , $ birth_place , $ gender );
제공된 Faker Extension을 사용하여 공장에서 가짜 코디스 회계를 생성 할 수 있습니다.
class PersonFactory extends Factory
{
public function definition (): array
{
return [
' first_name ' => $ firstName = fake ()-> firstName (),
' last_name ' => $ lastName = fake ()-> lastName (),
' fiscal_number ' => fake ()-> codiceFiscale (firstName: $ firstName , lastName: $ lastName ),
];
}
참고 : Codice Fiscale 생성에 필요한 정보를 제공 할 수 있습니다 ( firstName
, lastName
, birthDate
, birthPlace
, gender
).
도시 코드를 해독하기위한 세 가지 전략이 있습니다.
InternationalCitiesStaticList
: 이탈리아 도시의 정적 목록;ItalianCitiesStaticList
: 국제 도시의 정적 목록;IstatRemoteCSVList
: 공식 ISTAT CSV 파일에서로드 된 이탈리아 도시의 동적 (웹에서로드) 목록. 목록은 캐시 링되었습니다 (기본적으로는 변경 구성을 참조하십시오).CompositeCitiesList
: Config Key codicefiscale.cities-decoder-list
의 Base CityDecoderInterface
를 사용하여 두 개의 CityDecoderInterface
클래스 (예 : IstatRemoteCSVList
및 InternationalCitiesStaticList
)의 결과를 병합합니다. 기본적으로 패키지는 Class InternationalCitiesStaticList
사용하여 코드에서 도시를 조회하고 그 반대를 바탕으로합니다. 그러나 자신의 클래스를 사용하여 사용 된 전략을 변경할 수 있습니다.
CityDecoderInterface
및 getList()
메소드를 구현하면됩니다. 그런 다음 사용하려면 인스턴스를 CodiceFiscale
클래스로 전달하십시오.
예를 들어:
class MyCityList implements CityDecoderInterface
{
public function getList ()
{
// Implementation
}
}
. . .
$ cf = new CodiceFiscale ( new MyCityList )
. . .
참고 : 실종 된 도시를 찾으면 PR을 만드십시오!
도시 목록을 통합하려면 제공된 디코더 중 하나와 사용자 정의 디코더의 결과를 병합하여 CompositeCitiesList
를 사용할 수 있습니다.
예를 들어:
// conf/codicefiscale.php
return [
'city-decoder' => 'robertogalleaLaravelCodiceFiscaleCityCodeDecodersCompositeCitiesList',
...
'cities-decoder-list' => [
'robertogalleaLaravelCodiceFiscaleCityCodeDecodersInternationalCitiesStaticList',
'YourNamespaceMyCustomList',
]
MyCustomList
다음과 같이 정의됩니다.
...
class MyCustomList implements CityDecoderInterface
{
public function getList()
{
return [
'XYZ1' => 'My city 1',
'XYZ2' => 'My city 2',
]
}
}