제퍼넷 로고

Laravel 인터뷰 질문

시간

차례

Laravel은 모델-뷰-컨트롤러(MVC) 아키텍처 패턴을 따르는 웹 애플리케이션 개발을 위해 설계된 무료 오픈 소스 PHP 웹 애플리케이션 프레임워크입니다. 2011년 Taylor Otwell에 의해 만들어졌으며 이후 웹 애플리케이션 개발을 위한 가장 인기 있는 PHP 프레임워크 중 하나가 되었습니다.

1. 라라벨이란?

Laravel은 MVC(Model View Controller) 아키텍처를 따르는 PHP 웹 애플리케이션 프레임워크입니다. 무료이며 오픈 소스이며 MIT에 따라 라이센스가 부여됩니다. Laravel은 애플리케이션의 품질을 희생하지 않고 개발 프로세스를 더 쉽게 만드는 것을 목표로 하기 때문에 가장 인기 있고 존경받는 프레임워크 중 하나가 되었습니다. Laravel의 일부 기능은 다음과 같습니다.

2. Laravel 애플리케이션을 유지 관리 모드로 전환하는 방법

laravel 프레임워크는 애플리케이션을 유지 관리 모드로 전환하는 원활하고 스트레스 없는 방법을 제공합니다. 유지 관리 모드를 사용하면 웹 사이트가 유지 관리되는 동안 깨진 웹 사이트 대신 사용자에게 친숙한 알림을 표시할 수 있습니다. 또한 사이트에 액세스해야 하는 사람들이 사이트에 액세스할 수 있도록 하면서 모든 유지 관리 작업을 안전하게 수행할 수 있습니다.

아래의 artisan 명령을 사용하여 액세스할 수 있습니다.

PHP 아티잔 다운

이 명령에는 3개의 선택적 플래그가 있습니다.

  • 메시지 — 유지 관리 페이지에 표시할 메시지를 사용자 지정하는 데 사용됩니다.
  • retries — 요청을 재시도할 수 있는 시간(초)
  • 허용 — IP 또는 네트워크가 유지 관리 모드에서 애플리케이션에 액세스하도록 허용됩니다(개발 서버 또는 프로젝트에서 작업 중인 개발자의 IP 주소일 수 있음).

앱이 유지 관리 모드에 있으면 앱 사용자에게 사용자 지정 가능한 페이지가 표시되어 유지 관리 중임을 알립니다.

  • 전용 종속성 관리자가 있는 모듈식 패키지 시스템
  • 관계형 데이터베이스에 액세스하는 다양한 방법
  • 응용 프로그램 배포 및 유지 관리에 도움이 되는 도구
  • 구문 설탕 방향

3. Laravel의 이벤트에 대해 설명해주세요.

이벤트는 발생했거나 발생한 모든 것입니다. 마찬가지로 Laravel에서 이벤트는 애플리케이션에 작업이 발생했음을 알리는 방법일 뿐입니다. 이벤트는 컨트롤러, 모델, 미들웨어 또는 블레이드 파일과 같은 응용 프로그램의 어느 곳에서나 보낼 수 있습니다. 이벤트에는 여러 리스너가 매핑될 수 있으며 전달되면 모든 리스너 클래스가 매핑된 순서대로 순차적으로 실행됩니다.

따라서 이벤트가 트리거되면 애플리케이션은 다른 리스너를 트리거하여 여러 작업을 수행할 수 있습니다.

이벤트 클래스를 생성하려면 make: event artisan 명령을 사용하십시오.

php artisan make:이벤트

이 명령은 애플리케이션의 appEvents 폴더에 새 클래스를 생성하며 이벤트 클래스를 생성하는 데 필요한 모든 것입니다.

이벤트를 만드는 또 다른 방법은 EventServiceProvider 클래스에 이벤트를 등록한 다음 다음을 실행하는 것입니다.

PHP 장인 이벤트: 생성

이 명령은 EventServiceProvider 클래스를 검색하고 등록을 기반으로 누락된 이벤트 및 수신기를 생성합니다.

4. Laravel의 유효성 검사에 대해 설명해주세요.

유효성 검사는 응용 프로그램을 설계할 때 가장 중요한 측면입니다. Laravel은 기본 컨트롤러 클래스(Validator 클래스)를 통해 데이터를 검증하고 검증 오류 메시지를 받는 간단하고 편리한 기능을 제공합니다.

유효성 검사기 클래스는 기본적으로 ValidatesRequests 속성을 사용하여 들어오는 데이터의 유효성을 검사합니다. 이 속성은 강력한 유효성 검사 규칙 집합을 사용하여 들어오는 HTTP 요청의 유효성을 검사하는 편리한 방법을 제공합니다.

Validator 클래스는 크기, MIME 등과 같은 파일 유효성 검사를 위한 몇 가지 규칙을 제공합니다. 파일의 유효성을 검사할 때 다른 데이터와 함께 유효성 검사기에 간단히 전달할 수 있습니다.

5. Laravel의 최신 버전은 무엇입니까?

라라벨의 버전 체계는 paradigm.major.minor 규칙을 유지합니다. 주요 프레임워크 릴리스는 XNUMX개월마다(XNUMX월 및 XNUMX월) 릴리스되는 반면, 마이너 릴리스는 매주 자주 릴리스될 수 있습니다.

2022년 9월 현재 Laravel 최신 버전은 8년 2022월 XNUMX일에 출시된 버전 XNUMX입니다.

6. 작곡가를 통해 Laravel을 설치하는 방법은 무엇입니까?

터미널에 Composer create-project를 입력하여 Laravel을 설치할 수 있습니다:

작곡가 생성 프로젝트 laravel/laravel {디렉토리} {버전} –prefer-dist

Composer가 설치되면 필요한 버전의 Laravel 프레임워크를 다운로드하고 해당 콘텐츠를 서버의 디렉토리에 추출합니다. 다음으로 Laravel 애플리케이션의 루트 디렉토리에서 아래와 같이 명령을 실행하여 모든 프레임워크 종속성을 설치합니다. :

php creator.phar 설치(또는 명령 설치)

이 프로세스를 완료하려면 설치를 성공적으로 완료하기 위해 서버에 Git을 설치해야 합니다.

Laravel 프레임워크를 업데이트하려면 다음 명령을 입력하십시오. 

php creator.phar 업데이트

7. Laravel 6의 일부 기능을 나열하십시오.

Laravel 6.0 릴리스에는 3년 2021월 3일까지의 버그 수정과 2022년 XNUMX월 XNUMX일까지의 보안 수정이 포함됩니다.

Laravel 6의 새로운 기능은 다음과 같습니다.

  • 라라벨 릴리스 노트는 라라벨 6.0 이후 버전에서 시맨틱 버전 관리를 명확히 합니다.
  • Laravel 6.0은 Freek Van der Herten과 Marcel Pociot가 만든 Laravel을 위한 새로운 오픈 소스 예외 사이트인 Ignition과 함께 제공됩니다.
  • 이전에는 최종 사용자에게 사용자 정의 인증 오류 메시지를 제공하는 것이 어려웠습니다. 라라벨 6는 승인 정책 응답을 제공하기 위해 Gate::inspect 메소드를 도입했습니다.
  • 작업 미들웨어는 작업이 미들웨어를 통해 실행될 수 있도록 하는 Taylor Otwell이 기여한 기능입니다.
  • 지연 컬렉션은 Eloquent 모델 컬렉션을 포함하여 대규모 데이터 컬렉션 작업을 위한 게임 체인저입니다. 새로운 IlluminateSupportLazyCollection 클래스는 PHP 생성기를 사용하여 대규모 데이터 세트로 작업할 때 메모리를 낮게 유지합니다.
  • Jonathan Reinink는 Subqueries – Laravel 6.0의 Eloquent Subquery Enhancements에 기여했습니다.
  • Laravel 5.x 버전과 함께 제공되는 프론트엔드 스캐폴딩은 이제 별도의 laravel/ui Composer 패키지로 추출됩니다. 이를 통해 자사 UI 스캐폴딩을 기본 프레임워크와 별도로 반복할 수 있습니다.

8. PHP 장인이란? 몇 가지 장인 명령을 나열하십시오.

PHP Artisan은 Laravel의 일부인 명령줄 인터페이스입니다. Artisan은 응용 프로그램의 루트 디렉터리에 artisan 스크립트로 존재하며 응용 프로그램을 빌드하는 데 도움이 되는 여러 가지 유용한 명령을 제공합니다. 사용 가능한 모든 Artisan 명령을 나열하려면 list 명령을 사용할 수 있습니다. PHP 장인 목록

일부 제작 명령은 다음과 같습니다.

make:channel 새 채널 클래스를 만듭니다.

make:command 새로운 Artisan 명령 생성

make:controller 새로운 컨트롤러 클래스 생성

make:event 새 이벤트 클래스를 만듭니다.

make:exception 새 사용자 지정 예외 클래스를 만듭니다.

make:factory 새로운 모델 팩토리 생성

make:job 새 작업 클래스 만들기

make:listener 새로운 이벤트 리스너 클래스 생성

make:mail 새 이메일 클래스 만들기

make:middleware 새 미들웨어 클래스 생성

make:migration 새 마이그레이션 파일 만들기

make:model 새로운 Eloquent 모델 클래스 생성

make:notification 새 알림 클래스 만들기

make:observer 새 관찰자 클래스를 만듭니다.

make:policy 새 정책 클래스를 만듭니다.

make:provider 새 서비스 제공자 클래스 생성

make:request 새로운 양식 요청 클래스를 생성합니다.

make:resource 새 리소스 만들기

make:rule 새 유효성 검사 규칙을 만듭니다.

make:seeder 새로운 시더 클래스 생성

  make:test 새 테스트 클래스 만들기

9. 라라벨 프레임워크에서 제공하는 기본 패키지를 나열해 보십시오.

Laravel에는 여러 뷰, 컨트롤러 또는 모델이 포함된 패키지 역할을 하는 모듈이 있습니다. Laravel Package Manager는 Laravel 프로젝트를 위한 빠르고 간단한 패키지 관리를 제공합니다. Composer를 통해 신속하게 패키지를 설치할 수 있으며 패키지에서 제공하는 일부 또는 모든 서비스 공급자 및 Exterior를 자동으로 등록합니다.

일부 기본 Laravel 패키지는 다음과 같습니다.

  • 공간: 역할과 권한은 많은 웹 애플리케이션에서 중요한 부분입니다. 그리고 Spatie는 역할 및 권한 관리를 위한 최고의 권한 패키지를 제공합니다.
  • Laravel Debugbar: 사용자가 애플리케이션에 개발자 툴바를 추가할 수 있도록 도와주는 최고의 Laravel 패키지 중 하나입니다. 이 패키지는 주로 디버깅 목적으로 사용됩니다.
  • Laravel 사용자 인증: 이 패키지를 사용하면 사용자 인증을 수행하고 이메일을 확인할 수 있습니다.
  • Socialite: OAuth 인증을 처리하는 간단하고 쉬운 방법을 제공합니다. 사용자는 Facebook, Twitter, Google, GitHub 및 BitBucket을 포함하여 가장 인기 있는 소셜 네트워크 및 서비스를 통해 로그인할 수 있습니다.
  • Laravel Mix: 이전에 Laravel Elixir로 알려졌던 Laravel Mix는 프로젝트를 위한 웹 팩을 생성하는 단계를 정의하기 위한 깨끗하고 풍부한 애플리케이션 프로그래밍 인터페이스(API)를 제공합니다. 오늘날 Laravel에서 사용할 수 있는 가장 강력한 자산 컴파일 도구입니다.
  • Eloquent-Sluggable: Slugging은 단일 대소문자로 변환하고 공백, 악센트, 앰퍼샌드 등을 제거하여 문자열의 단순화된 URL 친화적인 버전을 만드는 프로세스입니다. Eloquent-Sluggable을 사용하면 모든 웅변에 대한 슬러그를 쉽게 만들 수 있습니다. 프로젝트의 모델.
  • 마이그레이션 생성기: 인덱스와 외래 키를 포함하여 기존 데이터베이스에서 마이그레이션을 생성할 수 있는 Laravel 패키지입니다.
  • Laravel 백업: 애플리케이션에 있는 모든 파일의 백업을 생성합니다. 데이터베이스 덤프와 함께 지정한 디렉토리의 모든 파일을 포함하는 zip 파일을 생성합니다.
  • 자격 증명: Laravel 5 애플리케이션에 역할 기반 권한을 추가하는 유연한 방법을 제공합니다.
  • 보안 문자 없음: Google reCaptcha 유효성 검사를 구현하고 스팸으로부터 양식을 보호하는 패키지입니다. reCaptcha에서 무료 API 키를 받아야 합니다.

10. 라라벨에서 명명된 경로는 무엇입니까?

명명된 경로는 Laravel의 중요한 기능입니다. URL을 생성할 때 경로를 참조하거나 특정 경로로 리디렉션할 수 있습니다. 요컨대 경로 이름 지정은 경로에 별명을 부여하는 방법이라고 말할 수 있습니다.

모든 Laravel 경로는 경로 디렉토리에 있는 경로 파일에 정의됩니다. 이러한 파일은 애플리케이션의 AppProvidersRouteServiceProvider에 의해 자동으로 로드됩니다.

route/web.php 파일은 웹 인터페이스용 경로를 정의합니다. 이러한 경로에는 세션 상태 및 CSRF 보호와 같은 기능을 제공하는 웹 미들웨어 그룹이 할당됩니다. route/api.php의 경로는 상태 비저장이며 미들웨어 api 그룹이 할당됩니다.

11. Laravel 8의 가장 좋은 기능은 무엇입니까?

Laravel 8은 8년 2020월 8일에 릴리스되었습니다. laravel XNUMX의 새로운 기능은 다음과 같습니다.

  • 새로운 랜딩 페이지: 새로 설치한 후 홈페이지에 접속하면 표시되는 페이지가 새롭게 바뀌었고 이제 TailwindCSS로 구축되었으며 라이트/다크 버전으로 제공됩니다.
  • 기본 애플리케이션/모델 디렉토리: 라라벨 8은 이전 라라벨 버전에서와 같이 모델 클래스를 애플리케이션 루트에 유지하는 대신 app/models 디렉토리와 함께 제공됩니다.
  • 이전 버전의 라라벨에서는 RouteServiceProvider.php에 자동으로 컨트롤러의 네임스페이스를 접두어로 사용하는 $namespace라는 속성이 있었습니다. 이 속성은 Laravel 8에서 제거되었으므로 문제 없이 컨트롤러 클래스를 경로 파일로 가져올 수 있습니다.
  • 향상된 경로 캐싱: 이제 클로저 기반 경로에 대한 경로 캐싱을 지원합니다.
  • 라라벨 8에서는 모든 하위 구성 요소에 $ 속성을 사용할 수 있으므로 확장 구성 요소를 더 쉽게 만들 수 있습니다.
  • 클로저 기반 이벤트 리스너를 위한 구문 클리너
  • 대기 가능한 익명 이벤트 리스너: Laravel 8에서는 모델 이벤트 콜백에서 대기열에 대한 클로저를 기반으로 태스크를 제출할 수 있습니다.

12. 데이터베이스 마이그레이션이란 무엇입니까? 장인을 통해 마이그레이션을 생성하는 방법은 무엇입니까?

마이그레이션은 데이터베이스의 버전 제어와 같아서 팀에서 애플리케이션의 데이터베이스 스키마를 쉽게 수정하고 공유할 수 있습니다. 마이그레이션은 일반적으로 Laravel의 스키마 빌더와 쌍을 이루어 애플리케이션의 데이터베이스 스키마를 쉽게 생성합니다.

마이그레이션 데이터를 생성하려면 아래와 같이 make:migration 매개 변수와 함께 php artisan 명령을 사용할 수 있습니다.

PHP 장인 make:migration create_users_table

13. Laravel의 서비스 제공자는 무엇입니까?

서비스 제공자는 모든 Laravel 애플리케이션의 중심 배포 지점입니다. 맞춤형 애플리케이션과 Laravel의 모든 핵심 서비스는 서비스 공급자를 통해 배포됩니다. 라라벨에 포함된 config/app.php 파일을 열면 공급자 필드가 보일 것입니다. 이들은 애플리케이션에 대해 로드될 모든 서비스 제공자 클래스입니다. 기본적으로 이 필드는 Laravel 핵심 서비스 제공자 세트를 나열합니다. 이러한 공급자는 메일러, 대기열, 캐시 등과 같은 Laravel의 핵심 구성 요소를 구현합니다. 이러한 공급자 중 다수는 "지연된" 공급자입니다. 즉, 모든 요청에 ​​로드되지는 않지만 서비스 공급자를 생성하기 위해 제공하는 서비스인 경우에만 다음과 같이 make:provider 매개 변수와 함께 php artisan 명령을 사용할 수 있습니다.

PHP 장인 make:provider MyServiceProvider

14. Laravel의 서비스 컨테이너에 대해 설명해주세요.

Laravel 서비스 컨테이너는 클래스 종속성을 관리하고 종속성 주입을 수행하기 위한 강력한 도구입니다. 서비스 컨테이너는 종속성을 해결하는 방법을 정의하는 컨테이너와 같습니다. 프레임워크 초기화 중에 서비스 컨테이너에 종속성을 등록해야 하며 이를 수행하는 가장 좋은 장소는 서비스 제공자입니다.

15. 작곡가란?

Composer는 PHP 소프트웨어 및 필수 라이브러리의 종속성을 관리하는 PHP 프로그래밍 언어의 종속성 관리자입니다. Nils Adermann과 Jordi Boggiano는 Composer를 개발했습니다. Composer는 명령줄을 통해 실행됩니다. 컴포저의 주요 목적은 애플리케이션의 종속성 또는 라이브러리를 설치하는 것입니다. Composer는 또한 사용자가 Packagist에서 사용할 수 있는 PHP 애플리케이션을 설치할 수 있도록 합니다. 여기서 Packagist는 사용 가능한 모든 패키지를 포함하는 기본 저장소입니다. Composer는 라이브러리에 대한 자동 로드 기능을 제공하여 타사 코드의 사용을 용이하게 합니다.

16. 라라벨에서 의존성 주입이란 무엇입니까?

종속성 주입은 하드 코딩된 클래스 종속성을 분리하는 데 사용되는 방법입니다. 종속성은 런타임에 주입되므로 종속성의 실행을 쉽게 받을 수 있기 때문에 더 많은 유연성을 허용합니다. Laravel에서 종속성 주입은 생성자 또는 setter 메서드를 사용하여 클래스에 종속성을 주입하는 프로세스입니다. 이렇게 하면 코드가 더 깔끔하게 보이고 더 빠르게 실행될 수 있습니다.

17. Laravel의 계약은 무엇입니까?

Laravel의 계약은 프레임워크에서 제공하는 핵심 서비스를 정의하는 인터페이스 세트입니다. 예를 들어 Queue 계약은 대기열 작업에 필요한 메서드를 정의하고 Mailer 계약은 이메일을 보내는 데 필요한 메서드를 정의합니다. 각 계약에는 프레임워크에서 제공하는 해당 구현이 있습니다. 예를 들어, 라라벨은 다른 컨트롤러와 함께 Queue 구현과 SwiftMailer로 구동되는 Mailer 구현을 제공합니다. 모든 Laravel 계약은 자체 GitHub 저장소에 있습니다. 이는 사용 가능한 모든 계약과 다른 패키지 개발자가 사용할 수 있는 하나의 개별 패키지에 대한 빠른 참조 지점을 제공합니다.

18. 라라벨의 파사드에 대해 설명해주세요 ?

Facade는 애플리케이션의 서비스 컨테이너에서 사용할 수 있는 클래스에 대한 정적 인터페이스를 제공합니다. Laravel 파사드는 서비스 컨테이너의 기본 클래스에 대한 정적 프록시 역할을 하여 간결하고 표현적인 구문의 이점을 제공하는 동시에 기존의 정적 방법보다 더 큰 테스트 가능성과 유연성을 유지합니다.

19. Laravel 웅변이란 무엇입니까?

Laravel에는 데이터베이스와 쉽게 상호 작용할 수 있는 객체 관계형 매퍼(ORM)인 Eloquent가 포함되어 있습니다. Eloquent를 사용하는 동안 모든 데이터베이스 테이블에는 특정 테이블과 상호 작용하는 데 사용할 수 있는 해당 "모델"이 있습니다. 데이터베이스 테이블에서 레코드를 검색하는 것 외에도 Eloquent 모델을 사용하면 테이블에서 레코드를 삽입, 업데이트 및 삭제할 수 있습니다.

20. Laravel에서 쿼리 로그를 활성화하는 방법은 무엇입니까?

Laravel은 선택적으로 현재 요청에 대해 실행된 모든 쿼리를 메모리에 로그인할 수 있습니다. 그러나 많은 수의 행을 삽입하는 경우와 같은 일부 경우에는 애플리케이션에서 과도한 메모리를 사용할 수 있습니다. 로그를 활성화하려면 enableQueryLog 메서드를 사용할 수 있습니다.

DB::connection()->enableQueryLog();

21. 라라벨에서 리버스 라우팅이란 무엇입니까?

Laravel 역방향 라우팅은 경로 선언을 사용하여 URL을 생성합니다. 리디렉션은 애플리케이션을 훨씬 더 유연하게 만듭니다. 라인과 Laravel 경로 사이의 관계를 정의합니다. 기존 경로의 이름을 사용하여 링크가 생성되면 Laravel은 자동으로 적절한 Uri를 생성합니다. 다음은 반대 방향의 예입니다. 

// 경로 선언

경로::get('등록', '사용자@등록');

역방향 라우팅을 사용하여 이에 대한 참조를 생성하고 정의한 모든 매개변수를 전달할 수 있습니다. 선택적 매개변수를 지정하지 않으면 생성된 링크에서 제거됩니다.

{{ HTML::link_to_action(‘users@register’) }}

보기에서 http://sample.com/register와 같은 URL을 자동으로 생성합니다.

22. Laravel의 특정 경로에 대한 CRSF 보호를 해제하는 방법은 무엇입니까?

CSRF는 Cross-Site Request Forgery의 약자입니다. XSRF, Sea Surf 및 Session Riding이라고도 합니다. CSRF는 최종 사용자가 현재 인증된 웹 애플리케이션에서 원하지 않는 작업을 수행하도록 하는 공격입니다. 라라벨은 VerifyCsrfToken 미들웨어를 사용하여 CSRF를 검증합니다.

다음은 미들웨어의 위치입니다: IlluminateFoundationHttpMiddlewareVerifyCsrfToken. 이 미들웨어는 모든 HTTP 요청에서 실행됩니다.

CSRF 보호를 비활성화하려면 appHttpMiddleware로 이동하여 VerifyCsrfToken.php 파일을 엽니다. protected $except = []; 에 경로를 추가해야 합니다. 들.

23. 라라벨의 특징은 무엇인가요?

특성은 코드 재사용성을 위해 PHP와 같은 단일 상속 언어에서 사용됩니다. 이 속성은 개발자가 서로 다른 클래스 계층 구조에 있는 여러 독립 클래스에서 메서드 집합을 자유롭게 재사용할 수 있도록 하여 단일 상속의 일부 제한 사항을 줄이기 위한 것입니다.

간단히 말해서 특성은 다른 클래스에 포함하려는 메서드 그룹입니다. 다른 클래스에서 이 메서드를 쉽게 재사용할 수 있습니다. 이 특성은 동일한 코드를 반복해서 작성할 수 있도록 저장됩니다.

24. 라라벨은 캐싱을 지원합니까?

예, Laravel은 캐싱을 지원합니다. Memcached, Redis, DynamoDB 및 관계형 데이터베이스와 같이 많이 사용되는 캐싱 백엔드와 함께 사용할 수 있습니다. 또한 파일 기반 캐시 드라이버를 사용할 수 있으며 어레이 드라이버와 "null" 캐시는 자동화된 테스트를 위한 편리한 캐시 백엔드를 제공합니다.

앱의 캐시 구성 파일은 config/cache.php에 있습니다. 이 파일에서 애플리케이션 전체에서 기본값으로 사용할 캐시 드라이버를 지정할 수 있습니다. 캐시 구성 파일에는 파일에 문서화된 다양한 기타 옵션도 포함되어 있으므로 해당 옵션을 읽으십시오. 기본적으로 Laravel은 서버의 파일 시스템에서 직렬화된 객체를 캐시하는 파일 캐시 드라이버를 사용하도록 구성되어 있습니다.

25. 라라벨의 미들웨어에 대해 설명해주세요.

미들웨어는 애플리케이션에 들어오는 HTTP 요청을 검사하고 필터링하기 위한 편리한 메커니즘을 제공합니다. Laravel에는 애플리케이션의 사용자가 인증되었는지 확인하는 미들웨어가 포함되어 있습니다. 사용자가 인증되지 않은 경우 미들웨어는 사용자를 애플리케이션의 로그인 화면으로 리디렉션합니다. 그러나 사용자가 인증되면 미들웨어는 요청이 응용 프로그램으로 계속 진행되도록 허용합니다. 인증 외에도 다양한 작업을 수행하기 위해 추가 미들웨어를 작성할 수 있습니다.

26. 루멘이란?

Lumen은 Slim 및 Silex와 같은 기존 PHP 마이크로프레임워크보다 빠른 경량 설치에 대한 요구를 충족하기 위해 Taylor Otwell이 Laravel의 대안으로 만든 오픈 소스 PHP 마이크로프레임워크입니다. Lumen을 사용하면 Laravel 애플리케이션이 지원할 수 있는 초고속 마이크로서비스 및 API를 생성할 수 있습니다. Lumen은 Laravel 프레임워크를 구동하는 Illuminate 구성 요소를 사용합니다. 이와 같이 Lumen은 필요한 경우 손쉽게 Laravel로 직접 업그레이드할 수 있도록 제작되었습니다.

루멘의 일부 기능은 다음과 같습니다.

  • 라우팅은 Lumen에서 즉시 제공됩니다. 여기에는 기본 라우팅, 라우팅 매개 변수, 명명된 경로 및 미들웨어와 같은 라우팅 그룹이 포함됩니다.
  • 인증이 세션 상태를 지원하지 않습니다. 그러나 들어오는 요청은 토큰과 같은 상태 비저장 메커니즘을 통해 인증됩니다.
  • 캐싱은 Laravel에서와 동일하게 구현됩니다. Database, Memcached 및 Redis와 같은 캐시 드라이버가 지원됩니다. 예를 들어 Composer를 통해 lights/Redis 패키지를 설치하여 Lumen과 함께 Redis 캐시를 사용할 수 있습니다.
  • 오류 및 로깅은 다양한 로그 드라이버에 대한 지원을 제공하는 Monolog 라이브러리를 통해 구현됩니다.
  • 대기열 서비스는 Laravel에서 제공하는 것과 유사합니다. 다양한 대기열 백엔드에 단일 API가 제공됩니다.
  • 이벤트는 애플리케이션에서 이벤트를 구독하고 수신할 수 있는 간단한 관찰자 구현을 제공합니다.
  • 부팅 프로세스는 단일 파일에 있습니다.

27. Laravel의 번들에 대해 설명하시오.

번들은 Laravel 3.0에서 크게 개선되었습니다. 번들은 편리하게 함께 묶인 코드 그룹입니다. 번들은 자체 보기, 구성, 경로, 마이그레이션, 작업 등을 가질 수 있습니다. 번들은 데이터베이스 ORM에서 강력한 인증 시스템에 이르기까지 무엇이든 될 수 있습니다. 이 범위의 모듈성은 Laravel에서 거의 모든 디자인 결정을 주도한 중요한 측면입니다. 여러 가지 방법으로 실제로 애플리케이션 폴더를 Laravel이 로드하고 사용하도록 사전 프로그래밍된 특별한 기본 패키지로 생각할 수 있습니다.

28. Laravel Modal에서 사용자 정의 테이블을 사용하는 방법은 무엇입니까?

Eloquent의 $ table-protected 속성을 재정의하여 Laravel에서 사용자 정의 테이블을 쉽게 사용할 수 있습니다. 샘플은 다음과 같습니다.

클래스 사용자 확장 Eloquent {

보호된 $table=”sample_table”;

}

29. Laravel Eloquent에서 사용할 수 있는 관계 유형을 나열하시겠습니까?

데이터베이스 테이블은 종종 관련이 있습니다. 예를 들어 소셜 미디어 사이트에는 많은 사용자가 있거나 주문이 주문한 사용자와 관련이 있을 수 있습니다. Eloquent는 이러한 관계를 쉽게 관리하고 작업할 수 있도록 하며 다음과 같은 여러 공통 관계를 지원합니다.

  • XNUMX-XNUMX
  • 일대다
  • 다대다
  • 하나를 통해
  • 많은 것을 통해
  • 일대일(다형성)
  • 일대다(다형성)
  • 다대다(다형성)

30. 마이그레이션이 필요한 이유는 무엇입니까?

마이그레이션은 응용 프로그램 데이터베이스 스키마의 변경 사항이나 업데이트를 팀원과 공유하는 데 사용됩니다. 데이터베이스의 버전 제어와 같습니다. 애플리케이션의 데이터베이스 스키마를 구축하기 위해 일반적으로 마이그레이션은 Laravel의 스키마 빌더와 쌍을 이룹니다. 로컬 데이터베이스에 새 열을 추가한 적이 있고 변경 사항을 팀원의 로컬 데이터베이스 스키마에 반영하려는 경우 데이터베이스 마이그레이션으로 해결되는 문제에 직면한 것입니다.

31. Laravel 프레임워크 설치를 위한 시스템 요구 사항을 제공합니까?

Laravel 프레임워크에는 몇 가지 시스템 요구 사항이 있습니다:

  • PHP >= 5.4, PHP < 7
  • Mcrypt PHP 확장
  • OpenSSL PHP 확장
  • PHP Mbstring 확장
  • Tokenizer PHP 확장

PHP 5.5부터 일부 OS 배포에서는 PHP JSON 확장을 수동으로 설치해야 할 수 있습니다. Ubuntu를 사용하는 경우 아래 명령으로 이 작업을 수행할 수 있습니다.

apt-get은 php5-json을 설치합니다.

32. Laravel의 쿼리 빌더가 제공하는 집계 방법을 나열해 보시겠습니까?

데이터베이스 쿼리 작성기는 편리하고 원활한 방식으로 데이터베이스 쿼리를 생성하고 실행할 수 있는 방법을 제공합니다. 지원되는 모든 데이터베이스 시스템에서 작동하며 애플리케이션에서 대부분의 데이터베이스 작업을 수행하는 데 사용할 수 있습니다.

쿼리 빌더는 다음과 같은 다양한 집계 방법을 제공합니다.

  • 카운트
  • Max
  • Min
  • 평균
  • 합계

33. 요청이 ajax인지 확인하는 방법은 무엇입니까?

Laravel은 요청이 ajax 요청인지 여부를 식별하는 데 사용할 수 있는 라이브러리 메소드의 사용을 허용합니다.

Laravel에서 $request->ajax() 메소드를 사용하여 요청이 ajax인지 아닌지 확인할 수 있습니다.

예:

      공개 함수 샘플($request 요청)

        {

            if($request->ajax()){

                "Ajax"를 반환합니다.

            }

            "Not Ajax"를 반환합니다.

        }

34. Inversion of Control과 이를 구현하는 방법을 설명하십시오.

Laravel 반전 제어 컨테이너는 클래스 종속성을 관리하기 위한 강력한 도구입니다. 종속성 주입은 하드 코딩된 클래스 종속성을 제거하는 방법입니다. 대신 런타임 시 종속성이 주입되어 종속성 구현을 쉽게 교체할 수 있으므로 더 많은 유연성이 허용됩니다. IoC 컨테이너가 종속성을 해결할 수 있는 두 가지 방법이 있습니다: 클로저 콜백 또는 자동 해결

35. Singleton의 디자인 패턴은 무엇입니까?

소프트웨어 엔지니어링에서 가장 인기 있는 디자인 패턴 중 하나는 싱글톤 디자인 패턴입니다. 이 창의적인 디자인 패턴은 클래스의 인스턴스가 시스템에 하나만 존재하도록 합니다. 싱글톤 클래스는 자신의 상태를 캡슐화하고 자신에게 전역 액세스 지점을 제공합니다.

Laravel은 다음과 같은 다양한 위치에서 싱글톤 패턴을 사용합니다.

  • 클래스 요청
  • 이벤트 클래스
  • 데이터베이스에 연결
  • 정면

Laravel 서비스 컨테이너는 클래스 종속성을 관리하고 종속성 주입을 수행하기 위한 강력한 도구입니다. 클래스의 인스턴스가 하나만 생성되도록 하기 위해 서비스 컨테이너는 싱글톤 패턴을 사용합니다. 이를 통해 컨테이너는 클래스 및 해당 종속성의 수명 주기를 관리하고 모두 올바르게 해결되도록 할 수 있습니다.

36. 의존성 주입과 그 유형에 대해 설명하시오.

종속성 주입은 하드 코딩된 클래스 종속성을 분리하는 데 사용되는 방법입니다. 종속성은 런타임에 주입되므로 종속성 실행을 쉽게 수신할 수 있으므로 더 많은 유연성이 허용됩니다. Laravel에서 종속성 주입은 생성자 또는 setter 메서드를 사용하여 클래스에 종속성을 주입하는 프로세스입니다. 이렇게 하면 코드가 더 깔끔하게 보이고 더 빠르게 실행될 수 있습니다.

종속성 주입에는 세 가지 일반적인 방법이 있습니다.

  • 생성자 주입: 종속성은 인터페이스를 인수로 허용하는 생성자를 통해 개체에 전달됩니다. 특정 클래스의 개체는 인터페이스 핸들에 바인딩됩니다.
  • 메서드 주입: 일명 인터페이스 기반 주입. 종속성은 메서드를 통해 개체에 전달됩니다. 이는 다른 시간에 다른 특정 개체를 사용해야 하는 경우에 유용합니다.
  • 속성 주입: 일명 주입 세터. 종속성을 선택하고 다른 위치에서 호출하는 경우 종속 개체에 의해 노출된 속성을 사용하여 종속성을 설정한 다음 나중에 호출할 수 있습니다.

37. Laravel Vapor란 무엇입니까?

Laravel Vapor는 AWS Lambda를 기반으로 하는 자동 확장 서버리스 Laravel 배포 플랫폼입니다. 서버리스 솔루션의 확장성 및 단순성과 같은 기능을 제공하므로 Vapor에서 Laravel 인프라를 관리할 수 있습니다. Vapor는 AWS Lambda에서 Laravel 애플리케이션을 관리하고 이러한 애플리케이션을 SQS 대기열, 데이터베이스, Redis 클러스터, 네트워크, CloudFront CDN에 연결하는 복잡성을 추상화합니다. 그리고 더. Vapor의 주요 기능 중 일부는 다음과 같습니다.

  • 쉬운 로컬 제어를 허용하는 데이터베이스 및 캐시 터널
  • 배포 중 Cloudfront CDN에 리소스 자동 업로드
  • 인증서 관리 및 갱신
  • 애플리케이션, 데이터베이스 및 캐시 메트릭
  • CI 친화적
  • Laravel에 맞게 조정된 웹/대기열 자동 확장 인프라
  • 다운타임 없이 배포 및 반환

38. 라라벨 프레임워크 사용의 장단점은 무엇입니까?

완벽하도록 설계된 프레임워크는 없습니다. 각 프레임워크에는 장점과 단점이 있습니다. 다음은 Laravel의 몇 가지 장점과 단점 목록입니다.

장점 :

  • 프레임워크의 주요 특징은 배우기 쉽다는 것입니다. 사용자 문서는 철저하고 가장 단순한 형태입니다. PHP 스크린캐스트는 충분히 편안하게 파악할 수 있도록 합니다.
  • MVC 또는 Model View Controller 프레임워크를 제공합니다.
  • 우아한 ORM 또는 개체 관계형 매핑 지원 – 이것은 모델의 일부를 자동화하고 추상화하는 또 다른 서비스입니다.
  • 블레이드 템플릿 모듈은 HTML 파일에 논리를 추가하는 쉬운 방법을 제공합니다. 핵심을 해킹하지 않고도 새로운 애플리케이션 기능을 추가하기가 쉬워졌습니다.
  • 라우팅: 라우팅 프로세스의 관리 및 추상화가 매우 쉬워졌습니다. 프레임워크에는 역방향 라우팅 기능도 포함되어 있습니다.
  • 대기열 관리 – Laravel은 불필요한 작업을 추상화하고 뒤에서 대기열에 추가하여 사용자 응답 시간을 훨씬 빠르게 만드는 뛰어난 추상화 프로세스를 제공합니다.
  • 번들 및 Composer는 모듈식 패키징 시스템과 해당 종속성을 위한 여러 번들을 제공합니다. 모듈성 덕분에 코드 재사용이 번거롭습니다.
  • 웹 애플리케이션 실행 속도가 빠름
  • Laravel은 주요 웹 애플리케이션의 요구 사항을 충족합니다.
  • Laravel은 중소 규모의 웹 애플리케이션에 이상적입니다.

단점 :

  • Laravel은 경량 프레임워크이므로 Django 및 Ruby on Rails에 비해 내장 지원이 적습니다. 이 문제는 타사 도구를 통합하여 해결할 수 있지만 대규모 또는 맞춤형 웹 사이트의 경우 작업이 지루하고 복잡할 수 있습니다.
  • 모든 라라벨 코어 파일은 라라벨 네임스페이스에 있으며, 모든 코어 파일이 다른 코어 파일을 호출하기 전에 네임스페이스 슬래시()를 사용하는 것은 아니므로 확장 클래스를 좀 더 복잡하게 만들 수 있습니다. 이것은 큰 문제가 아니며 많은 개발자가 걱정하지 않을 것입니다.
  • 라라벨은 다른 많은 프레임워크만큼 성숙하지 않은 새로운 프레임워크입니다. Composer는 npm(노드 js 개발자 고용용)이나 ruby ​​gems 및 pip(Python 개발자 고용용)에 비해 그다지 강력하지 않습니다.
  • 레일 위의 루비에 비해 개발이 빠르지 않습니다.
  • 상당히 느리고 개발자를 위한 새로운 플랫폼입니다.
  • 숙련된 개발자는 코드와 클래스를 확장하는 데 문제가 있습니다.
  • 다른 플랫폼에 비해 커뮤니티 지원이 광범위하지 않음
  • 리버스 엔지니어링 프로세스와 관련된 많은 방법은 복잡합니다.
  • 레거시 시스템이 Laravel로 마이그레이션하는 것은 쉽지 않습니다.

39. 라라벨 커서란 무엇인가요?

Laravel의 Cursor 메소드를 사용하면 하나의 쿼리만 실행하는 커서를 사용하여 데이터베이스 레코드를 반복할 수 있습니다. 많은 양의 데이터를 처리할 때 커서 방식을 사용하면 메모리 사용량을 크게 줄일 수 있습니다.

40. Laravel에서 dd()의 용도는 무엇입니까?

laravel의 dd()는 변수의 내용을 브라우저에 덤프하고 스크립트의 추가 실행을 중지하는 데 사용되는 도우미 함수입니다. Dump and Dies의 약자입니다. 이 기능은 색상으로 구분된 변수와 매우 읽기 쉽고 형식이 잘 지정된 개체가 포함된 멋진 디버깅 옵션으로 간주됩니다.

41. Laravel에서 수율이란 무엇입니까?

laravel의 Yield 옵션은 특정 레이아웃의 섹션을 정의하는 데 사용되며 하위 페이지에서 마스터 페이지로 콘텐츠를 로드하는 데 지속적으로 사용됩니다. 따라서 Laravel이 블레이드 파일을 실행하면 사용자가 확장된 레이아웃을 가지고 있는지 확인한 다음 @ 섹션으로 시작하는 기본 레이아웃을 삽입합니다. 간단히 말해 수율은 콘텐츠와 비슷합니다. 사용자가 콘텐츠에 태그를 작성하면 괄호 안에 정의해야 합니다. 사용자가 콘텐츠를 작성할 필요가 없는 경우 요구 사항에 따라 내부적으로 정의된 반환으로 구성할 수 있습니다. 하위 페이지에서 사용자는 제목 섹션에 정의된 레이아웃 콘텐츠에서 HTML 페이지의 모든 항목을 가져올 수 있습니다. 예를 들어 사용자가 레이아웃 페이지의 헤더에 yield 레이블이 지정되어 있으면 원하는 요청을 가져올 수 있습니다. 그리고 하위 페이지에서는 헤더의 @section으로 설명할 수 있습니다. 본문 부분이 있는 하위 페이지 내부의 레이아웃 페이지에 있는 헤더를 가져옵니다. 이 경우 제목은 내용으로 취급됩니다.

42. Laravel에서 캐시를 어떻게 지우나요?

laravel에서 기본 캐시는 애플리케이션 캐시입니다. 앱에 수동으로 캐시하는 모든 항목을 저장합니다. 태그 또는 다른 캐시 저장소를 사용하는 경우 특정 캐시 요소만 지울 수 있습니다. Laravel에서 캐시를 지우려면 다음 중 하나를 수행하십시오.

  • artisan 명령을 사용하여 Laravel 캐시 지우기

php artisan 캐시: 지우기

  • 프로그래밍 방식으로 Laravel 캐시 지우기

프로그래밍 방식으로 캐시에서 항목을 제거하는 것은 artisan 명령을 사용하여 캐시를 지우는 것만큼 쉽습니다. 캐시 파사드나 캐시 도우미를 사용하여 캐시에 액세스할 수도 있습니다.

캐시::플러시()

캐시()->플러시()

43. 라라벨 노바가 무엇인가요?

Laravel Nova는 Laravel 애플리케이션을 위한 아름다운 관리 패널입니다. Nova의 주요 기능은 Eloquent를 사용하여 기본 데이터베이스 레코드를 관리하는 기능입니다. Nova는 애플리케이션의 각 Eloquent 모델에 해당하는 Nova "소스"를 정의할 수 있도록 함으로써 이를 달성합니다.

44. Laravel의 관계는 무엇입니까?

데이터베이스 테이블은 종종 관련이 있습니다. 예를 들어 소셜 미디어 사이트에는 많은 사용자가 있거나 주문이 주문한 사용자와 관련이 있을 수 있습니다. Eloquent는 이러한 관계를 쉽게 관리하고 작업할 수 있도록 하며 다음과 같은 여러 공통 관계를 지원합니다.

  • XNUMX-XNUMX
  • 일대다
  • 다대다
  • 하나를 통해
  • 많은 것을 통해
  • 일대일(다형성)
  • 일대다(다형성)
  • 다대다(다형성)

45. Laravel의 Eloquent는 무엇입니까?

Eloquent는 Laravel 프레임워크와 함께 표준으로 제공되는 객체 관계 매퍼(ORM)입니다. ORM은 데이터를 개체로 표시하고 응용 프로그램의 데이터를 저장하는 데 사용되는 데이터베이스 엔진에 대한 추상화 계층 역할을 하여 데이터베이스 레코드 처리를 용이하게 하는 소프트웨어입니다. Eloquent는 복잡한 SQL 쿼리를 실행하기 위한 단순화된 인터페이스를 제공하는 동시에 데이터베이스 레코드를 삽입, 업데이트 및 삭제하는 객체 지향 접근 방식을 제공하여 데이터베이스 테이블 작업을 쉽게 만듭니다.

46. ​​스로틀링이란 무엇이며 Laravel에서 어떻게 구현합니까?

제한은 애플리케이션 인스턴스, 개별 테넌트 또는 전체 서비스에서 사용하는 리소스 소비를 제어하는 ​​것입니다. 라라벨에서는 스로틀 미들웨어를 사용하여 주어진 경로 또는 경로 그룹에 대한 트래픽 양을 제한합니다. 미들웨어 스로틀은 주어진 시간(분) 동안 만들 수 있는 최대 요청 수를 결정하는 두 개의 매개 변수를 허용합니다.

47. 파사드는 무엇입니까?

Facade는 애플리케이션의 서비스 컨테이너에서 사용할 수 있는 클래스에 "정적" 인터페이스를 제공합니다. Laravel은 거의 모든 Laravel 기능에 대한 액세스를 제공하는 많은 파사드를 제공합니다. Laravel 파사드는 서비스 컨테이너의 기본 클래스에 대한 "정적 프록시" 역할을 하여 간결하고 표현적인 구문의 이점을 제공하는 동시에 기존의 정적 메소드보다 더 큰 테스트 가능성과 유연성을 유지합니다. 모든 Laravel 파사드는 IlluminateSupportFacades 네임스페이스에 정의되어 있습니다. 그래서 우리는 외관에 쉽게 접근할 수 있습니다.

48. Laravel의 이벤트는 무엇입니까?

이벤트는 발생했거나 발생한 모든 것입니다. 마찬가지로 Laravel에서 이벤트는 애플리케이션에 작업이 발생했음을 알리는 방법일 뿐입니다. 이벤트는 컨트롤러, 모델, 미들웨어 또는 블레이드 파일과 같은 응용 프로그램의 어느 곳에서나 보낼 수 있습니다. 이벤트에는 여러 리스너가 매핑될 수 있으며 전달되면 모든 리스너 클래스가 매핑된 순서대로 순차적으로 실행됩니다.

따라서 이벤트가 트리거되면 애플리케이션은 다른 리스너를 트리거하여 여러 작업을 수행할 수 있습니다.

이벤트 클래스를 생성하려면 make: event artisan 명령을 사용하십시오.

php artisan make:이벤트

이 명령은 애플리케이션의 appEvents 폴더에 새 클래스를 생성하며 이벤트 클래스를 생성하는 데 필요한 모든 것입니다.

이벤트를 만드는 또 다른 방법은 EventServiceProvider 클래스에 이벤트를 등록한 다음 다음을 실행하는 것입니다.

PHP 장인 이벤트: 생성

이 명령은 EventServiceProvider 클래스를 검색하고 등록을 기반으로 누락된 이벤트 및 수신기를 생성합니다.

49. 라라벨 로그인에 대해 설명해주세요.

Laravel의 로깅은 "채널"을 기반으로 합니다. 각 채널은 로그에 정보를 쓰는 특정 방법을 나타냅니다. 내부적으로 Laravel은 다양하고 강력한 로그 핸들러를 지원하는 Monolog 라이브러리를 사용합니다. Laravel을 사용하면 이러한 핸들러를 쉽게 구성할 수 있으므로 애플리케이션의 로그 처리를 사용자 정의하기 위해 이들을 혼합하고 일치시킬 수 있습니다. 애플리케이션의 동작을 로깅하기 위한 모든 구성 옵션은 config/logging.php 구성 파일에 저장됩니다.

50. 라라벨에서 현지화란?

Laravel의 현지화 기능은 다양한 언어로 문자열을 로드하는 편리한 방법을 제공하므로 애플리케이션에서 여러 언어를 쉽게 지원할 수 있습니다. Laravel에는 문자열 번역을 할 수 있는 두 가지 방법이 있습니다. 첫째, 언어 문자열은 lang 디렉토리의 파일에 저장할 수 있습니다. 이 디렉토리 내에는 응용 프로그램에서 지원하는 각 언어에 대한 하위 디렉토리가 있을 수 있습니다. 이것은 라라벨의 내장 함수에 대한 번역 문자열을 관리하기 위해 라라벨이 사용하는 접근 방식입니다.

51. Laravel에서 요청이란 무엇입니까?

Laravel IlluminateHttpRequest 클래스는 요청과 함께 전송된 입력, 쿠키 및 파일을 검색할 뿐만 아니라 애플리케이션에서 처리 중인 현재 HTTP 요청과 상호 작용하는 객체 지향 방식을 제공합니다. 종속성 주입을 통해 현재 HTTP 요청의 인스턴스를 얻으려면 경로 또는 컨트롤러 클로저 메서드에 IlluminateHttpRequest 클래스의 힌트를 작성해야 합니다. Laravel 서비스 컨테이너는 들어오는 요청 인스턴스를 자동으로 주입합니다.

52. Laravel에서 유효성 검사를 요청하는 방법은 무엇입니까?

요청을 검증하기 위해 IlluminateHttpRequest 객체가 제공하는 validate 메소드를 사용할 것입니다. 유효성 검사 규칙을 통과하면 코드가 정상적으로 실행됩니다. 그러나 유효성 검사가 실패하면 IlluminateValidationValidationException이 발생하고 올바른 오류 응답이 사용자에게 자동으로 전송됩니다.

보다 복잡한 인증 시나리오를 위해 "양식 요청"을 생성할 수 있습니다. 양식 요청은 자체 인증 및 권한 부여 논리를 캡슐화하는 사용자 지정 요청 클래스입니다. 양식 요청 클래스를 생성하려면 make: request Artisan CLI 명령을 사용할 수 있습니다.

php artisan make:요청 StorePostRequest

53. 라라벨의 서비스 컨테이너는 무엇인가요?

Laravel 서비스 컨테이너는 클래스 종속성을 관리하고 종속성 주입을 수행하기 위한 강력한 도구입니다. 서비스 컨테이너는 종속성을 해결하는 방법을 정의하는 컨테이너와 같습니다. 프레임워크 초기화 중에 서비스 컨테이너에 종속성을 등록해야 하며 이를 수행하는 가장 좋은 장소는 서비스 제공자입니다.

54. 서비스 제공자란 무엇입니까?

laravel 애플리케이션의 서비스 공급자는 애플리케이션이 배포되는 중심 위치입니다. 이는 laravel의 핵심 서비스와 애플리케이션의 서비스, 클래스 및 해당 종속성이 공급자를 통해 서비스 컨테이너에 주입됨을 의미합니다. Laravel은 서비스 제공자를 생성하기 위한 숙련된 명령을 제공합니다.

PHP 장인 make:provider MyServiceProvider

이 명령은 App/Providers/ 디렉터리에 MyServiceProvider라는 서비스 공급자를 만듭니다. Laravel 규칙에 따라 새 공급자 클래스가 생성될 때마다 ServiceProvider에 클래스 이름을 추가하여 이 특정 파일이 ServiceProvider 유형임을 쉽게 알 수 있습니다.

55. Service Provider 클래스의 등록 및 부팅 방법은 무엇입니까?

서비스 제공자는 모든 Laravel 애플리케이션의 중심 배포 지점입니다. 사용자 지정 애플리케이션과 Laravel의 모든 핵심 서비스는 서비스 공급자를 통해 배포됩니다.

register 메소드 내에서 사물을 서비스 컨테이너에 바인딩할 수 있습니다. 귀하의 서비스 공급자 메서드 내에서 우리는 항상 서비스 컨테이너에 대한 액세스를 제공하는 $app 속성에 액세스할 수 있습니다.

부팅 방법은 서비스 제공업체에 뷰 작성기를 등록하는 데 도움이 됩니다. 이 메서드는 다른 모든 서비스 공급자가 등록된 후에 호출됩니다. 즉, 프레임워크가 등록한 다른 모든 서비스에 액세스할 수 있습니다.

56. Laravel에서 경로를 정의하는 방법은 무엇입니까?

모든 Laravel 경로는 경로 디렉토리에 있는 경로 파일에 정의됩니다. 애플리케이션의 AppProvidersRouteServiceProvider가 파일을 자동으로 로드합니다. route/web.php 파일은 웹 인터페이스용 경로를 정의합니다. 이러한 경로에는 세션 상태 및 CSRF 보호 기능을 제공하는 웹 미들웨어 그룹이 할당됩니다. route/api.php의 경로는 상태 비저장이며 미들웨어 API 그룹이 할당됩니다.

57. 명명된 경로란 무엇입니까?

명명된 경로는 Laravel의 중요한 기능입니다. URL을 생성할 때 경로를 참조하거나 특정 경로로 리디렉션할 수 있습니다. 요컨대 경로 이름 지정은 경로에 별명을 부여하는 방법이라고 말할 수 있습니다.

모든 Laravel 경로는 경로 디렉토리에 있는 경로 파일에 정의됩니다. 애플리케이션의 AppProvidersRouteServiceProvider는 이러한 파일을 자동으로 로드합니다. route/web.php 파일은 웹 인터페이스용 경로를 정의합니다. 이러한 경로에는 세션 상태 및 CSRF 보호 기능을 제공하는 웹 미들웨어 그룹이 할당됩니다. route/api.php의 경로는 상태 비저장이며 미들웨어 API 그룹이 할당됩니다.

58. 루트 그룹이란 무엇입니까?

경로 그룹을 사용하면 각 경로에서 해당 속성을 정의하지 않고도 여러 경로에서 미들웨어 또는 네임스페이스와 같은 경로 속성을 공유할 수 있습니다. 공유 속성은 Route::group 메서드의 첫 번째 매개변수로 배열 형식으로 지정됩니다.

59. 미들웨어란 무엇이며 라라벨에서 미들웨어를 만드는 방법은 무엇입니까?

미들웨어는 요청과 응답 사이의 다리 역할을 합니다. 이것은 일종의 필터링 메커니즘입니다. 라라벨은 애플리케이션 사용자의 인증 여부를 확인하는 미들웨어를 포함하고 있습니다. 사용자가 인증되면 홈 페이지로 리디렉션되고 인증되지 않으면 로그인 페이지로 리디렉션됩니다.

미들웨어는 다음 명령을 실행하여 만들 수 있습니다.

php artisan make:미들웨어

바꾸다 미들웨어의 이름으로. app/Http/Middleware 디렉토리에서 생성한 미들웨어를 볼 수 있습니다.

60. laravel에서 자원에 대한 경로를 만드는 방법은 무엇입니까?

컨트롤러 메서드에 대한 경로를 만들려면 아래 명령을 사용할 수 있습니다.

AppHttpControllersUserController를 사용하십시오.

Route::get('/user/{id}', [UserController::class, 'show']);

들어오는 요청이 지정된 경로 URI와 일치하면 AppHttpControllersUserController 클래스의 show 메서드가 호출되고 경로 매개 변수가 메서드에 전달됩니다.

61. 라라벨에서 의존성 주입이란 무엇입니까?

종속성 주입은 하드 코딩된 클래스 종속성을 분리하는 데 사용되는 방법입니다. 종속성은 런타임에 주입되므로 종속성 실행을 쉽게 수신할 수 있으므로 더 많은 유연성이 허용됩니다. Laravel에서 종속성 주입은 생성자 또는 setter 메서드를 사용하여 클래스에 종속성을 주입하는 프로세스입니다. 이렇게 하면 코드가 더 깔끔하게 보이고 더 빠르게 실행될 수 있습니다.

62. 컬렉션이란 무엇입니까?

라라벨 컬렉션은 라라벨 프레임워크의 유용한 기능입니다. 컬렉션은 PHP 배열처럼 작동하지만 더 편리합니다. 컬렉션 클래스는 IlluminateSupportCollection에 있습니다. 컬렉션을 사용하면 필드를 매핑하거나 줄이는 메서드 체인을 만들 수 있습니다. 변경할 수 없으며 컬렉션 메서드를 호출하면 새 컬렉션이 반환됩니다. PHP 배열 함수용 API 래퍼이며 배열에서 컬렉션을 생성할 수 있습니다.

63. 계약이란 무엇입니까?

Laravel의 "계약"은 프레임워크가 제공하는 기본 서비스를 정의하는 인터페이스 세트입니다. 예를 들어 IlluminateContractsQueueQueue 계약은 대기열 작업에 필요한 메서드를 정의하고 IlluminateContractsMailMailer 계약은 이메일을 보내는 데 필요한 메서드를 정의합니다. Laravel은 각 프레임워크에 해당하는 구현을 제공합니다.

64. 라라벨에서 큐는 무엇인가요?

Laravel 대기열은 Beanstalk, Amazon SQS, Redis 또는 관계형 데이터베이스와 같은 다양한 대기열 백엔드를 위한 통합 API를 제공합니다. 대기열을 사용하면 이메일 전송과 같이 시간이 많이 걸리는 작업의 처리를 나중까지 지연시킬 수 있습니다. 이러한 시간 소모적인 작업을 연기하면 애플리케이션에 대한 웹 요청 속도가 크게 빨라집니다.

65. 접속자와 돌연변이자는 무엇입니까?

접근자와 뮤테이터를 사용하면 모델에서 속성을 검색하거나 값을 설정할 때 Eloquent 속성의 형식을 지정할 수 있습니다. 예를 들어 Laravel의 암호화 모듈을 사용하여 데이터베이스에 저장된 값을 암호화한 다음 Eloquent 모델에서 속성에 액세스할 때 자동으로 속성을 해독할 수 있습니다. 고유한 접근자와 뮤테이터 외에도 Eloquent는 자동으로 데이터를 Carbon 인스턴스로 변환하거나 텍스트 필드를 JSON으로 변환할 수 있습니다.

spot_img

최신 인텔리전스

spot_img

우리와 함께 채팅

안녕하세요! 어떻게 도와 드릴까요?