다음 튜토리얼 칼럼인 laravel에서는 서비스 클래스를 생성하는 Laravel의 사용자 정의 Make 명령을 소개합니다. 도움이 필요한 친구들에게 도움이 되길 바랍니다!
환경 설명
제가 사용하는 환경은 Laravel Framework 8.40.0
입니다. Laravel Framework 8.40.0
。
C:\www\wwwroot\laravel8>php artisan --version Laravel Framework 8.40.0
一、制作命令文件
前期知识的相关制作的教程,请参考我的另一篇博客Laravel自定义Make命令生成目标类。
-
运行如下命令
php artisan make:command MakeService
生成
Console/Commands/MakeService.php
命令文件。 修改继承类
把继承类修改成GeneratorCommand
,该类的命名空间为IlluminateConsoleGeneratorCommand
。
删除实例化方法,handle函数
实现一个方法getStub
。-
设置
name
属性。
修改$signature
属性为name
属性,并设置命令:protected $name = 'make:service';
-
设置
type
属性值type
类型设置,我们生成的是service
,所以我们设置的属性就是Service
。protected $type = 'Service';
type类型是自己去定义的,本身没有特殊含义,可以不用设置。
type属性值仅仅在创建错误的时候,给你一个友好的提示,如下所示:
C:\www\wwwroot\laravel8>php artisan make:service TestService already exists! C:\www\wwwroot\laravel8>php artisan make:service TestService Service already exists!
第一个是没有设置
type
属性的效果,第二个是设置了type
属性的效果。官方使用的type有:Controller,Middleware,Cast,Channel…
根据自己的需要修改其他的属性
设置Stub的位置和命令空间
Stub的位置是在根目录下Stubs/service.stub
里面。
命名空间在app
目录下Services
里面。
实例代码如下:
<?php namespace App\Console\Commands; use Illuminate\Console\GeneratorCommand; class MakeService extends GeneratorCommand{ /** * The console command name. * * @var string */ protected $name = 'make:service'; /** * The console command description. * * @var string */ protected $description = '生成service对象类'; /** * The type of class being generated. * * @var string */ protected $type = 'Service'; /** * Get the stub file for the generator. * * @return string */ protected function getStub() { // Implement getStub() method. return $this->laravel->basePath('/stubs/service.stub'); } /** * Get the default namespace for the class. * * @param string $rootNamespace * @return string */ protected function getDefaultNamespace($rootNamespace) { return $rootNamespace.'\Services'; }}
二、制作Stub文件
我的service文件目前不需要继承或者依赖什么类。所以,相对的比较简单。如果你有特别的需要,可以进行扩展操作。
实例代码如下:
<?phpnamespace DummyNamespace;class DummyClass{ //}
DummyClass
和DummyNamespace
在继承的GeneratorCommand
类内部会被自动替换成自动生成的类名和设置的命名空间。
建议这种写法,可以使用编辑器的语法提示,获得更友好的提示效果。
另外,你也可以使用Larave
内置的{{ class }}
和{{ namespace }}
写法。
三、测试Service生成
执行以下命令
php artisan make:service IndexService
能正常生成成功
C:\www\wwwroot\laravel8>php artisan make:service IndexService Service created successfully.
生成的文件的目录是app/Services/IndexService.php
<?php namespace App\Services; class IndexService{ //}
다음 명령🎜rrreee🎜을 실행하여1. 명령어 파일 만들기초기 지식과 관련된 튜토리얼은 제 다른 블로그 Laravel custom Make command를 참고하여 대상 클래스를 생성하세요.
Console/Commands/MakeService.php
명령 파일을 생성하세요. 🎜
상속된 클래스를
GeneratorCommand
로 수정하고 이 클래스의 네임스페이스는 IlluminateConsoleGeneratorCommand
입니다. 인스턴스화 메소드 삭제, 함수 처리
getStub
메소드 구현. 🎜name
속성을 설정하세요. $signature
속성을 name
속성으로 수정하고 명령을 설정합니다: 🎜rrreeetype 속성 값<br><code>type
유형 설정, 우리가 생성하는 것은 service
이므로 우리가 설정하는 속성은 Service
입니다. 🎜rrreee🎜🎜타입 유형은 직접 정의한 것이며 특별한 의미는 없으며 설정할 필요도 없습니다. 🎜🎜🎜type 속성 값은 아래와 같이 오류 생성 시 친숙한 알림만 제공합니다. 🎜rrreee🎜첫 번째는 type
속성을 설정하지 않은 효과이고, 두 번째는 설정 type
속성의 효과가 변경됩니다. 🎜🎜🎜공식적으로 사용되는 유형은 다음과 같습니다: Controller, Middleware, Cast, Channel...🎜🎜🎜필요에 따라 다른 속성을 수정하세요🎜
Stub 위치는 루트 디렉터리
Stubs/service.stub
에 있습니다. 네임스페이스는
app
디렉토리 아래의 Services
에 있습니다. 🎜DummyClass
및 DummyNamespace
는 자동으로 생성된 클래스 이름과 설정할 네임스페이스로 자동 대체됩니다. 🎜🎜🎜더 친근한 프롬프트 효과를 얻으려면 편집기의 구문 프롬프트를 사용하는 것이 좋습니다. 또한
Larave
에 내장된 {{ class }}
및 {{ 네임스페이스 }}
쓰기를 사용할 수도 있습니다. 행동 양식. 🎜🎜🎜🎜3. 테스트 서비스 생성🎜🎜다음 명령어를 실행하면🎜rrreee🎜성공적으로 생성될 수 있습니다🎜rrreee🎜생성된 파일의 디렉터리는 app/Services/IndexService.php
이고, 생성된 파일은 다음과 같습니다: 🎜rrreee🎜🎜관련 권장 사항: 🎜최신 5개의 Laravel 비디오 튜토리얼🎜🎜🎜위 내용은 서비스 클래스를 생성하는 Laravel의 사용자 정의 Make 명령 소개의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

Laravel은 백엔드 논리에서 어떻게 중요한 역할을합니까? 라우팅 시스템, eloquentorm, 인증 및 승인, 이벤트 및 청취자, 성능 최적화를 통해 백엔드 개발을 단순화하고 향상시킵니다. 1. 라우팅 시스템은 URL 구조의 정의 및 요청 처리 로직을 정의 할 수 있습니다. 2. eloquentorm은 데이터베이스 상호 작용을 단순화합니다. 3. 인증 및 인증 시스템은 사용자 관리에 편리합니다. 4. 이벤트와 리스너는 느슨하게 결합 된 코드 구조를 구현합니다. 5. 성능 최적화는 캐싱 및 대기열을 통한 응용 프로그램 효율성을 향상시킵니다.

Laravel의 인기에는 단순화 된 개발 프로세스, 쾌적한 개발 환경 및 풍부한 기능이 포함됩니다. 1) PHP의 유연성을 결합하여 Rubyonrails의 설계 철학을 흡수합니다. 2) 개발 효율성을 향상시키기 위해 Eloquentorm, Blade Template Engine 등과 같은 도구를 제공하십시오. 3) MVC 아키텍처 및 종속성 주입 메커니즘은 코드를보다 모듈화적이고 테스트 가능하게 만듭니다. 4) 캐싱 시스템 및 모범 사례와 같은 강력한 디버깅 도구 및 성능 최적화 방법을 제공합니다.

Django와 Laravel은 모두 풀 스택 프레임 워크입니다. Django는 Python 개발자 및 복잡한 비즈니스 논리에 적합한 반면 Laravel은 PHP 개발자 및 우아한 구문에 적합합니다. 1. Django는 파이썬을 기반으로하며 빠른 개발 및 높은 동시성에 적합한 "배터리 완성"철학을 따릅니다. 2. Laravel은 PHP를 기반으로하며 개발자 경험을 강조하며 중소형 프로젝트에 적합합니다.

Laravel은 PHP 기반 프레임 워크이기 때문에 PHP와 Laravel은 직접 비교할 수 없습니다. 1.PHP는 소규모 프로젝트 또는 빠른 프로토 타이핑에 적합하고 간단하고 직접적이기 때문에 적합합니다. 2. Laravel은 대규모 프로젝트 또는 효율적인 개발에 적합하지만 풍부한 기능과 도구를 제공하지만 가파른 학습 곡선을 가지고 있으며 순수한 PHP만큼 좋지 않을 수 있습니다.

laravelisabackendframeworkbuiltonphp, 디자인 된 forwebapplicationdevelopment.itfocusesonserver-sidelogic, databasemanagement, andapplicationtructure, and canbeintegratedwithfrontendechnologies likevue.jsorreactforfull-stackdevelopment.

이 기사는 Laravel에서 사용자 정의 블레이드 지시문을 만들고 사용하여 템플릿을 향상시키는 것에 대해 설명합니다. 지침 정의, 템플릿에서이를 사용하고 대규모 프로젝트에서 관리하고 개선 된 코드 재사용 성 및 R과 같은 이점을 강조합니다.

이 기사는 구성 요소를 사용하여 Laravel에서 재사용 가능한 UI 요소를 작성하고 사용자 정의하여 조직을위한 모범 사례를 제공하고 패키지 강화를 제안합니다.

이 기사는 Laravel의 라우팅을 사용하여 SEO 친화적 인 URL을 생성, 모범 사례, 표준 URL 및 SEO 최적화 도구를 다루는 것에 대해 설명합니다.


핫 AI 도구

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

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

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

AI Hentai Generator
AI Hentai를 무료로 생성하십시오.

인기 기사

뜨거운 도구

에디트플러스 중국어 크랙 버전
작은 크기, 구문 강조, 코드 프롬프트 기능을 지원하지 않음

SublimeText3 Linux 새 버전
SublimeText3 Linux 최신 버전

WebStorm Mac 버전
유용한 JavaScript 개발 도구

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

Atom Editor Mac 버전 다운로드
가장 인기 있는 오픈 소스 편집기
