laravel 프레임워크에서는 내장 파일 시스템의 관련 작업을 사용하면 매우 편리합니다. 그런데 이를 어떻게 구현하나요? 다음 기사에서는 PHP 중국어 웹사이트에서 관련된 원리에 대해 자세히 설명할 것입니다. 기사의 내용을 직접 살펴보겠습니다.
소개부터 시작하겠습니다:
라라벨의 자체 파일 시스템을 예로 들어보겠습니다. 구성 파일 config/app.php의 공급자 배열에는 서비스 공급자가 등록됩니다:
IlluminateFilesystemFilesystemServiceProvider::class,
별칭 배열 A
‘File’ => IlluminateSupportFacadesFile::class,
이 두 단계를 통해 Laravel에서 제공하는 파일 시스템 관련 작업을 매우 편리하게 사용할 수 있으며 호출 형식은 다음과 같이 매우 간단합니다.
File::exist($path), Judge 파일이 존재하는지 여부.
File::get($path, $lock = false), 파일 내용을 가져옵니다.
File::append($path, $data), 파일 끝에 내용을 추가합니다.
File::files($directory), 디렉터리의 모든 파일을 가져옵니다.
Laravel의 서비스 제공자와 Facade 모드에 대해 각각 이야기해 보겠습니다.
Service Provider
먼저 정의를 살펴보겠습니다.
Service Provider는 모든 Laravel 애플리케이션이 시작되는 중심입니다. 여러분의 애플리케이션을 포함한 모든 핵심 Laravel 서비스는 서비스 제공자를 통해 시작됩니다.
/vendor/laravel/framework/src/Illuminate/Filesystem/FilesystemServiceProvider.php에 있는 파일 시스템 서비스 제공자에서 등록 메소드는 싱글톤이 바인딩되어 있음을 확인할 수 있습니다.
protected function registerNativeFilesystem() { $this->app->singleton('files', function () { return new Filesystem; }); }
이 싱글톤은 클래스에 대한 파일 시스템 싱글톤 패턴입니다. . 물론 이 서비스 제공자는 다른 싱글톤을 바인딩하거나 더 많은 작업을 수행할 수도 있습니다. 여기서는 File::exist() 호출 메서드의 원리만 연구합니다.
그리고 실제로는 Filesystem 클래스의 인스턴스인 파일의 단일 인스턴스가 있습니다.
이때 Facade가 없으면 Filesystem 인스턴스의 메소드를 다음과 같이 호출할 수도 있습니다.
app(‘files’)->exist($path)
자, 이제 Facade에 대해 이야기해 보겠습니다.
Facade Facade 모드
Facade는 애플리케이션의 서비스 컨테이너에서 사용 가능한 클래스가 "정적" 인터페이스를 제공합니다. Laravel에는 많은 기능이 포함되어 있습니다. 거의 모든 서비스에 액세스하는 데 사용할 수 있는 외관입니다. 라라벨 파사드 이는 서비스 컨테이너에 있는 기본 클래스의 "정적 프록시"입니다. 전통적인 정적 메소드 호출과 비교하여 Facade는 더 간단하고 풍부한 구문을 제공할 뿐만 아니라 더 나은 테스트 가능성과 확장성을 제공합니다.
이 글의 시작 부분에서 별칭 배열이 파일을 정의한다고 언급했습니다. 특정 클래스는
IlluminateSupportFacadesFile::class,
내용은
class File extends Facade { /** * Get the registered name of the component. * * @return string */ protected static function getFacadeAccessor() { return 'files'; } }
실제로 이름을 반환합니다. 파일, 방금 바인딩된 싱글톤 패턴의 이름이 아닌가요? 좋아요.
이런 방식으로 File 별칭이나 Facade를 사용하여 이 Filesystem 인스턴스의 메서드를 호출할 수 있습니다.
이 글을 통해 서비스 제공자와 Facade, 실제로 호출되는 클래스의 인스턴스 간의 관계를 이해할 수 있기를 바랍니다.
위 내용은 이 글의 전체 내용입니다. 더 많은 라라벨 내용을 보려면 laravel 프레임워크 소개 튜토리얼을 주목하세요.
추천 관련 글:
Laravel 프레임워크의 보조 기능: 선택적 () 기능 소개
Laravel5.5의 새로운 기능: 사전 설정 명령 분석
추천 관련 강좌:
2017년 최신 Laravel 추천 비디오 튜토리얼 5개
위 내용은 Laravel 프레임워크(코드)의 서비스 제공자 및 Facade 패턴(Facade) 사용법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

本篇文章给大家带来了关于laravel的相关知识,其中主要介绍了关于单点登录的相关问题,单点登录是指在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用系统,下面一起来看一下,希望对大家有帮助。

本篇文章给大家带来了关于laravel的相关知识,其中主要介绍了关于Laravel的生命周期相关问题,Laravel 的生命周期从public\index.php开始,从public\index.php结束,希望对大家有帮助。

在laravel中,guard是一个用于用户认证的插件;guard的作用就是处理认证判断每一个请求,从数据库中读取数据和用户输入的对比,调用是否登录过或者允许通过的,并且Guard能非常灵活的构建一套自己的认证体系。

laravel中asset()方法的用法:1、用于引入静态文件,语法为“src="{{asset(‘需要引入的文件路径’)}}"”;2、用于给当前请求的scheme前端资源生成一个url,语法为“$url = asset('前端资源')”。

本篇文章给大家带来了关于laravel的相关知识,其中主要介绍了关于使用中间件记录用户请求日志的相关问题,包括了创建中间件、注册中间件、记录用户访问等等内容,下面一起来看一下,希望对大家有帮助。

本篇文章给大家带来了关于laravel的相关知识,其中主要介绍了关于中间件的相关问题,包括了什么是中间件、自定义中间件等等,中间件为过滤进入应用的 HTTP 请求提供了一套便利的机制,下面一起来看一下,希望对大家有帮助。

在laravel中,scope用于处理模型中的数据,在模型中可以定义scope开头方法,这类方法可以通过模型直接调用,被称为查询作用域,语法为“public function scope首字母大写单词($query){...}”。

laravel路由文件在“routes”目录里。Laravel中所有的路由文件定义在routes目录下,它里面的内容会自动被框架加载;该目录下默认有四个路由文件用于给不同的入口使用:web.php、api.php、console.php等。


핫 AI 도구

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

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

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

Clothoff.io
AI 옷 제거제

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

인기 기사

뜨거운 도구

MinGW - Windows용 미니멀리스트 GNU
이 프로젝트는 osdn.net/projects/mingw로 마이그레이션되는 중입니다. 계속해서 그곳에서 우리를 팔로우할 수 있습니다. MinGW: GCC(GNU Compiler Collection)의 기본 Windows 포트로, 기본 Windows 애플리케이션을 구축하기 위한 무료 배포 가능 가져오기 라이브러리 및 헤더 파일로 C99 기능을 지원하는 MSVC 런타임에 대한 확장이 포함되어 있습니다. 모든 MinGW 소프트웨어는 64비트 Windows 플랫폼에서 실행될 수 있습니다.

안전한 시험 브라우저
안전한 시험 브라우저는 온라인 시험을 안전하게 치르기 위한 보안 브라우저 환경입니다. 이 소프트웨어는 모든 컴퓨터를 안전한 워크스테이션으로 바꿔줍니다. 이는 모든 유틸리티에 대한 액세스를 제어하고 학생들이 승인되지 않은 리소스를 사용하는 것을 방지합니다.

Eclipse용 SAP NetWeaver 서버 어댑터
Eclipse를 SAP NetWeaver 애플리케이션 서버와 통합합니다.

SublimeText3 영어 버전
권장 사항: Win 버전, 코드 프롬프트 지원!

mPDF
mPDF는 UTF-8로 인코딩된 HTML에서 PDF 파일을 생성할 수 있는 PHP 라이브러리입니다. 원저자인 Ian Back은 자신의 웹 사이트에서 "즉시" PDF 파일을 출력하고 다양한 언어를 처리하기 위해 mPDF를 작성했습니다. HTML2FPDF와 같은 원본 스크립트보다 유니코드 글꼴을 사용할 때 속도가 느리고 더 큰 파일을 생성하지만 CSS 스타일 등을 지원하고 많은 개선 사항이 있습니다. RTL(아랍어, 히브리어), CJK(중국어, 일본어, 한국어)를 포함한 거의 모든 언어를 지원합니다. 중첩된 블록 수준 요소(예: P, DIV)를 지원합니다.

뜨거운 주제



