백엔드 개발 PHP 튜토리얼 laravel을 통해 새 클래스 파일을 생성하기 위해 사용자 정의 artisan make 명령을 생성하는 방법

laravel을 통해 새 클래스 파일을 생성하기 위해 사용자 정의 artisan make 명령을 생성하는 방법

Jun 13, 2018 pm 02:53 PM
artisan laravel make

다음 글에서는 laravel이 custom artisan make 명령을 생성하여 새로운 클래스 파일을 생성하는 방법에 대한 관련 정보를 주로 소개합니다. 필요한 친구들이 참고할 수 있습니다.

Laravel은 비브라우저 비즈니스 로직을 처리하기 위해 Artisan을 통해 강력한 콘솔 명령을 제공합니다.

머리말

이 글은 주로 사용자 정의 artisan make 명령을 생성하여 새로운 클래스 파일을 생성하는 laravel에 대한 관련 내용을 소개합니다. 참고 및 학습을 위해 공유하겠습니다. 자세한 소개는 아래에서 함께 살펴보도록 하겠습니다.

laravel을 개발할 때 우리는 artisan make:controller와 같은 명령을 사용하여 Controller, Model, Job, Event와 같은 새로운 클래스 파일을 생성하는 경우가 많습니다. Laravel5.2에서 artisan make 명령은 다음 파일 생성을 지원합니다: artisan make:controller等命令来新建Controller、Model、Job、Event等类文件。 在Laravel5.2中artisan make命令支持创建如下文件:

 make:auth   Scaffold basic login and registration views and routes
 make:console  Create a new Artisan command
 make:controller  Create a new controller class
 make:event   Create a new event class
 make:job   Create a new job class
 make:listener  Create a new event listener class
 make:middleware  Create a new middleware class
 make:migration  Create a new migration file
 make:model   Create a new Eloquent model class
 make:policy   Create a new policy class
 make:provider  Create a new service provider class
 make:request  Create a new form request class
 make:seeder   Create a new seeder class
 make:test   Create a new test class
로그인 후 복사

不过,有时候默认的并不能够满足我们的需求, 比方我们在项目中使用的Respository模式来进一步封装了Model文件,就需要经常创建Repository类文件了,时间长了就会想能不能通过artisan make:repository命令自动创建类文件而不是都每次手动创建。

系统自带的artisan make命令对应的PHP程序放在IlluminateFoundationConsole目录下,我们参照IlluminateFoundationConsoleProviderMakeCommand类来定义自己的artisan make:repository命令。

一、创建命令类

在appConsoleCommands文件夹下创建RepositoryMakeCommand.php文件,具体程序如下:

namespace App\Console\Commands;

use Illuminate\Console\GeneratorCommand;

class RepositoryMakeCommand extends GeneratorCommand
{
 /**
  * The console command name.
  *
  * @var string
  */
 protected $name = 'make:repository';

 /**
  * The console command description.
  *
  * @var string
  */
 protected $description = 'Create a new repository class';

 /**
  * The type of class being generated.
  *
  * @var string
  */
 protected $type = 'Repository';

 /**
  * Get the stub file for the generator.
  *
  * @return string
  */
 protected function getStub()
 {
  return __DIR__.'/stubs/repository.stub';
 }

 /**
  * Get the default namespace for the class.
  *
  * @param string $rootNamespace
  * @return string
  */
 protected function getDefaultNamespace($rootNamespace)
 {
  return $rootNamespace.'\Repositories';
 }
}
로그인 후 복사

二、创建命令类对应的模版文件

在appConsoleCommandsstubs下创建模版文件 .stub文件是make命令生成的类文件的模版,用来定义要生成的类文件的通用部分创建repository.stub模版文件:

 namespace DummyNamespace;
 
 use App\Repositories\BaseRepository;
 
 class DummyClass extends BaseRepository
 {
  
  /**
   * Specify Model class name
   * 
   * @return string
   */
  public function model()
  {
   //set model name in here, this is necessary!
  }
 }
로그인 후 복사

三、注册命令类

将RepositoryMakeCommand添加到AppConsoleKernel.php中

 protected $commands = [
  Commands\RepositoryMakeCommand::class
 ];
로그인 후 복사

测试命令

好了, 现在就可以通过make:repository

php artisan make:repository TestRepository

php artisan make:repository SubDirectory/TestRepository
로그인 후 복사

그러나 때때로 기본값은 우리가 사용하는 저장소 모드와 같이 우리의 요구를 충족하지 못할 수 있습니다. 프로젝트 모델 파일을 추가로 캡슐화하려면 Repository 클래스 파일을 자주 생성해야 합니다. 시간이 지나면 수동으로 생성하는 대신 artisan make:repository 명령을 통해 자동으로 클래스 파일을 생성할 수 있는지 궁금할 것입니다. 매번 말이죠.

시스템과 함께 제공되는 artisan make 명령에 해당하는 PHP 프로그램은 IlluminateFoundationConsole 디렉토리에 위치합니다. 우리는 자체 artisan make:repository를 정의하기 위해 IlluminateFoundationConsoleProviderMakeCommand 클래스를 참조합니다. > 명령.

1. 명령어 클래스를 생성합니다.

appConsoleCommands 폴더에 RepositoryMakeCommand.php 파일을 생성합니다. 구체적인 절차는 다음과 같습니다.

rrreee

🎜 2. 다음에 해당하는 템플릿 파일을 생성합니다. 명령 class 🎜 🎜🎜 🎜🎜appConsoleCommandsstubs 아래에 템플릿 파일을 만듭니다. 스텁 파일은 make 명령으로 생성된 클래스 파일의 템플릿입니다. 생성할 클래스 파일의 공통 부분을 정의하는 데 사용됩니다. .stub 템플릿 파일: 🎜🎜🎜rrreee🎜🎜🎜🎜🎜 3. 명령 클래스를 등록합니다🎜🎜🎜🎜🎜RepositoryMakeCommand를 AppConsoleKernel.php에 추가🎜🎜🎜rrreee🎜🎜🎜🎜명령 테스트 🎜🎜🎜🎜좋아, 이제 너는 make:repository 명령 리포지토리 클래스 파일을 통해 생성할 수 있습니다🎜🎜🎜rrreee🎜🎜🎜위 내용은 모두의 학습에 도움이 되기를 바랍니다. , PHP 중국어 웹사이트를 주목해주세요! 🎜🎜관련 권장사항: 🎜🎜🎜Laravel에서 리소스 라우팅 사용자 정의 URL을 다시 작성하는 구현 방법에 대해🎜🎜🎜🎜🎜laravel 5.4에서 무제한 분류를 구현하는 방법에 대해🎜🎜🎜🎜🎜🎜🎜

위 내용은 laravel을 통해 새 클래스 파일을 생성하기 위해 사용자 정의 artisan make 명령을 생성하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

Video Face Swap

Video Face Swap

완전히 무료인 AI 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!

뜨거운 도구

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전

SublimeText3 중국어 버전

중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

신 수준의 코드 편집 소프트웨어(SublimeText3)

Laravel에서 이메일 전송이 실패 할 때 반환 코드를 얻는 방법은 무엇입니까? Laravel에서 이메일 전송이 실패 할 때 반환 코드를 얻는 방법은 무엇입니까? Apr 01, 2025 pm 02:45 PM

Laravel 이메일 전송이 실패 할 때 반환 코드를 얻는 방법. Laravel을 사용하여 응용 프로그램을 개발할 때 종종 확인 코드를 보내야하는 상황이 발생합니다. 그리고 실제로 ...

laravel 일정 작업이 실행되지 않습니다 : 스케줄 후 작업이 실행되지 않으면 어떻게해야합니까? laravel 일정 작업이 실행되지 않습니다 : 스케줄 후 작업이 실행되지 않으면 어떻게해야합니까? Mar 31, 2025 pm 11:24 PM

laravel 일정 작업 실행 비 응답 문제 해결 Laravel의 일정 작업 일정을 사용할 때 많은 개발자 가이 문제에 직면합니다 : 스케줄 : 실행 ...

Laravel에서는 이메일로 확인 코드를 보내지 못하는 상황을 처리하는 방법은 무엇입니까? Laravel에서는 이메일로 확인 코드를 보내지 못하는 상황을 처리하는 방법은 무엇입니까? Mar 31, 2025 pm 11:48 PM

Laravel의 이메일을 처리하지 않는 방법은 LaRavel을 사용하는 것입니다.

DCAT 관리자에서 데이터를 추가하기 위해 클릭하는 사용자 정의 테이블 기능을 구현하는 방법은 무엇입니까? DCAT 관리자에서 데이터를 추가하기 위해 클릭하는 사용자 정의 테이블 기능을 구현하는 방법은 무엇입니까? Apr 01, 2025 am 07:09 AM

DCAT를 사용할 때 DCATADMIN (LARAVEL-ADMIN)에서 데이터를 추가하려면 사용자 정의의 테이블 기능을 구현하는 방법 ...

Laravel - 덤프 서버 Laravel - 덤프 서버 Aug 27, 2024 am 10:51 AM

Laravel - 덤프 서버 - Laravel 덤프 서버는 Laravel 5.7 버전과 함께 제공됩니다. 이전 버전에는 덤프 서버가 포함되어 있지 않습니다. 덤프 서버는 laravel/laravel 작곡가 파일의 개발 종속성이 됩니다.

Laravel Redis Connection 공유 : 선택 메소드가 다른 연결에 영향을 미치는 이유는 무엇입니까? Laravel Redis Connection 공유 : 선택 메소드가 다른 연결에 영향을 미치는 이유는 무엇입니까? Apr 01, 2025 am 07:45 AM

Laravel 프레임 워크 및 Laravel 프레임 워크 및 Redis를 사용할 때 Redis 연결을 공유하는 데 영향을 줄 수 있습니다. 개발자는 문제가 발생할 수 있습니다. 구성을 통해 ...

Laravel 멀티 테넌트 확장 STANCL/TENANCY : 테넌트 데이터베이스 연결의 호스트 주소를 사용자 정의하는 방법은 무엇입니까? Laravel 멀티 테넌트 확장 STANCL/TENANCY : 테넌트 데이터베이스 연결의 호스트 주소를 사용자 정의하는 방법은 무엇입니까? Apr 01, 2025 am 09:09 AM

Laravel 다중 테넌트 확장 패키지 패키지 패키지 패키지 패키지 Stancl/Tenancy, ...

Laravel - 작업 URL Laravel - 작업 URL Aug 27, 2024 am 10:51 AM

Laravel - 액션 URL - Laravel 5.7에는 "호출 가능한 액션 URL"이라는 새로운 기능이 도입되었습니다. 이 기능은 액션 메소드에서 문자열을 허용하는 Laravel 5.6의 기능과 유사합니다. Laravel 5.7에 도입된 새로운 구문의 주요 목적은

See all articles