폴더 구조
ㅋㅋ
- 루트 디렉터리
- 앱 디렉터리 구성 디렉터리
- 데이터베이스 디렉터리이벤트 디렉터리
- 예외 디렉터리
- Http 디렉토리
- Jobs 디렉토리
- Listeners 디렉토리
- Mail 디렉토리
- Notifications 디렉토리
- P 정책 디렉토리
- 공급자 디렉터리
- 규칙 디렉터리
Laravel의 폴더 구조
简介
默认的 Laravel 应用结构旨在为不同大小的应用提供一个很好的起点。当然,您可以随意组织您的应用程序。Laravel 对任何给定类的位置几乎没有任何限制,只要它们能被 Composer 自动加载。
为什么没有模型目录?
当开始使用 Laravel 时,许多开发人员都因缺少 models
目录而感到困惑。然而,缺少这样的目录是故意的。我们发现「模型」含糊不清,因为不同的人对「模型」有不同的理解。一些开发者把应用的「模型」称为其所有业务逻辑的总体,而另一些人将「模型」称为与关系数据库交互的类。
出于这个原因,我们默认把 Eloquent 的模型放在 app
config
디렉터리🎜 데이터베이스
code> 디렉토리🎜🎜🎜 공개
디렉토리🎜🎜🎜 리소스
code> 디렉터리🎜🎜🎜 경로
디렉터리🎜🎜🎜 저장소
code> 디렉토리 🎜🎜🎜 tests
디렉토리 🎜🎜🎜 vendor
code> 디렉터리🎜🎜방송 code> 디렉토리🎜🎜🎜 콘솔
디렉토리🎜🎜🎜 이벤트
code> 디렉토리🎜🎜🎜 예외
디렉토리🎜🎜🎜 http code> 디렉토리🎜🎜🎜 작업
디렉토리🎜🎜🎜 리스너
code> code> Directory🎜🎜🎜 mail
Directory🎜🎜🎜 알림
코드> 디렉토리🎜🎜🎜 정책
디렉토리🎜🎜🎜 providers
code> Directory🎜🎜🎜 rules
Directory🎜🎜
소개
🎜 기본 Laravel 애플리케이션 구조는 다양한 크기의 애플리케이션을 위한 훌륭한 시작점을 제공하도록 설계되었습니다. 물론 원하는 대로 애플리케이션을 구성할 수 있습니다. Laravel은 Composer에 의해 자동으로 로드될 수 있는 한 특정 클래스의 위치에 거의 제한을 두지 않습니다. 🎜왜 모델 디렉터리가 없나요?
🎜Laravel을 사용하기 시작하면 많은 개발자들이models
디렉터리가 없어서 혼란스러워합니다. 그러나 그러한 디렉토리가 없는 것은 의도적인 것입니다. 사람들마다 "모델"에 대해 서로 다른 이해를 갖고 있기 때문에 "모델"이 모호하다고 생각합니다. 일부 개발자는 응용 프로그램의 "모델"을 모든 비즈니스 논리의 총체로 참조하는 반면, 다른 개발자는 "모델"을 관계형 데이터베이스와 상호 작용하는 클래스로 참조합니다. 🎜🎜이러한 이유로 우리는 기본적으로 Eloquent 모델을 app
디렉터리에 배치하고 개발자가 다른 곳에 배치할 수 있도록 허용합니다. 🎜🎜🎜🎜🎜🎜🎜Root Directory
App Directory
app
디렉토리에는 애플리케이션의 핵심 코드가 포함되어 있습니다. 애플리케이션의 거의 모든 클래스가 여기에 있어야 합니다. 나중에 이 디렉토리에 대해 더 자세히 살펴보겠습니다. app
目录包含应用程序的核心代码。你应用中几乎所有的类都应该放在这里。稍后我们会更深入地了解这个目录的细节。
Bootstrap 目录
bootstrap
目录包含引导框架的 app.php
文件。该目录还包含了一个 cache
目录, cache
目录下存放着框架生成的用来提升性能的文件,比如路由和服务缓存文件。
Config 目录
config
目录,顾名思义,包含应用程序所有的配置文件。我们鼓励你通读这些文件,以便帮助你熟悉所有可用的选项。
Database 目录
database
目录包含数据填充和迁移文件以及模型工厂类。你还可以把它作为 SQLite 数据库存放目录。
Public 目录
public
目录包含了入口文件 index.php
,它是进入应用程序的所有请求的入口点。此目录还包含了一些你的资源文件(如图片、JavaScript 和 CSS)。
Resources 目录
resources
대부분의 애플리케이션은 当你使用 {tip} 许多类通过 Artisan 命令生成在 默认情况下这个目录是不存在的,但你可以通过 默认情况下这个目录是不存在的,但如果你执行 默认情况下这个目录是不存在的,但如果你执行了 默认情况下这个目录是不存在的,但如果你执行 默认情况下这个目录是不存在的,但如果你执行 默认情况下这个目录是不存在的,但如果你执行 在一个新的 Laravel 应用中,此目录已经包含一些提供者。你可以根据需要随意将你自己的提供者添加到此目录中。 默认情况下这个目录是不存在的,但如果你执行 bootstrap
디렉터리에는 부트스트랩 프레임워크가 포함되어 있습니다. app.php
파일. 이 디렉터리에는 cache
디렉터리도 포함되어 있습니다. cache
디렉터리에는 라우팅 및 서비스 캐시 파일과 같이 성능 향상을 위해 프레임워크에서 생성된 파일이 저장됩니다. 🎜🎜🎜🎜config
디렉터리, 이름으로 제안하며 애플리케이션에 대한 모든 구성 파일을 포함합니다. 사용 가능한 모든 옵션을 익히는 데 도움이 되도록 이 문서를 자세히 읽어 보시기 바랍니다. 🎜🎜🎜🎜database
디렉터리에는 데이터 채우기 및 마이그레이션 파일 및 모델 팩토리 클래스. SQLite 데이터베이스 저장소 디렉터리로 사용할 수도 있습니다. 🎜🎜🎜🎜public
디렉터리에는 항목 파일이 포함되어 있습니다 < code>index.php 는 애플리케이션에 대한 모든 요청의 진입점입니다. 이 디렉터리에는 일부 리소스 파일(예: 이미지, JavaScript, CSS)도 포함되어 있습니다. 🎜🎜🎜🎜resources
디렉터리에는 뷰와 Uncompiled가 포함되어 있습니다. 리소스 파일(예: LESS, SASS 또는 JavaScript). 이 디렉토리에는 모든 언어 파일도 포함되어 있습니다. 🎜🎜🎜🎜🎜🎜🎜Routes 디렉터리
routes
디렉터리에는 애플리케이션의 모든 경로 정의가 포함되어 있습니다. Laravel에는 기본적으로 web.php
, api.php와 같은 여러 경로 파일이 포함되어 있습니다. 코드 코드>,
console.php
및 channels.php
. routes
目录包含了应用的所有路由定义,Laravel 默认包含了几个路由文件:web.php
、api.php
、 console.php
和 channels.php
。web.php
文件包含 RouteServiceProvider
放置在 web
中间件组中的路由,它提供会话状态、CSRF 防护和 cookie 加密。如果你的应用不提供无状态的、RESTful 风格的 API,则所有的路由都应该在 web.php
文件中定义。.api.php
文件包含 RouteServiceProvider
放置在 api
中间件组中的路由,它提供了频率限制。这些路由都是无状态的,所以通过这些路由进入应用请求旨在通过令牌进行身份认证,并且不能访问会话状态。console.php
文件是定义所有基于控制台命令闭包函数的地方。每个闭包函数都被绑定到一个命令实例并且允许和命令行 IO 方法进行简单的交互。尽管这些文件没有定义 HTTP 路由,但它也将基于控制台的入口点(路由)定义到应用程序中。channels.php
用来注册你的应用支持的所有的事件广播渠道的地方。Storage 目录
storage
目录包含编译后的 Blade 模板、session 会话生成的文件、缓存文件以及框架生成的其他文件。这个目录被细分成 app
、 framework
和 logs
三个子目录。app
目录可以用来存储应用生成的任何文件。 framework
目录用来存储框架生成的文件和缓存。最后, logs
目录包含应用的日志文件。storage/app/public
可以用来存储用户生成的文件,比如需要公开访问的用户头像。你应该创建一个 public/storage
的软链接指向这个目录。你可以直接通过 php artisan storage:link
命令来创建此链接。Tests 目录
tests
目录包含自动化测试文件。在 PHPUnit 有现成的范例供你参考。每个测试类都应该以 Test
作为后缀。你可以使用 phpunit
或者 php vendor/bin/phpunit
命令来运行测试。Vendor 目录
vendor
web.php
파일에는 세션 상태, CSRF 보호 및 쿠키를 제공하는 web
미들웨어 그룹의 RouteServiceProvider
에 의해 배치된 경로가 포함되어 있습니다. 암호화. 애플리케이션이 상태 비저장 RESTful API를 제공하지 않는 경우 모든 경로는 web.php
파일에 정의되어야 합니다. .console.php
파일은 모든 콘솔 명령 기반 폐쇄 기능이 정의된 곳입니다. 각 클로저 함수는 명령 인스턴스에 바인딩되어 있으며 명령줄 IO 메서드와의 간단한 상호 작용을 허용합니다. 이러한 파일은 HTTP 경로를 정의하지 않지만 애플리케이션에 대한 콘솔 기반 진입점(경로)도 정의합니다. channels.php
는 애플리케이션에서 지원하는 모든 이벤트 방송 채널을 등록하는 데 사용되는 장소입니다. 🎜🎜🎜🎜storage
디렉터리에는 컴파일된 블레이드 템플릿이 포함되어 있습니다. , 세션 생성 파일, 캐시 파일 및 프레임워크에서 생성된 기타 파일입니다. 이 디렉터리는 app
, framework
및 logs
의 세 가지 하위 디렉터리로 나뉩니다. app
디렉토리는 애플리케이션에서 생성된 모든 파일을 저장하는 데 사용될 수 있습니다. framework
디렉터리는 프레임워크에서 생성된 파일과 캐시를 저장하는 데 사용됩니다. 마지막으로 logs
디렉터리에는 애플리케이션의 로그 파일이 포함되어 있습니다. 🎜🎜storage/app/public
은 공개적으로 액세스할 수 있어야 하는 사용자 아바타와 같은 사용자 생성 파일을 저장하는 데 사용할 수 있습니다. 이 디렉토리를 가리키는 public/storage
에 대한 소프트 링크를 생성해야 합니다. php artisan Storage:link
명령을 통해 직접 이 링크를 생성할 수 있습니다. 🎜🎜🎜🎜tests
디렉터리에는 자동화된 테스트 파일이 포함되어 있습니다. . 참고할 수 있도록 PHPUnit에 미리 만들어진 예제가 있습니다. 모든 테스트 클래스에는 Test
라는 접미사가 붙어야 합니다. phpunit
또는 php Vendor/bin/phpunit
명령을 사용하여 테스트를 실행할 수 있습니다. 🎜🎜🎜🎜vendor
디렉터리에는 모든 Composer가 포함됩니다. 의존성 패키지. 🎜🎜🎜🎜🎜🎜🎜앱 디렉토리
app
디렉토리에 있습니다. 기본적으로 이 디렉터리는 네임스페이스 App
이며 PSR-4 자동 로딩 표준을 사용하여 Composer에 의해 자동으로 로드됩니다. app
目录中。默认情况下,此目录的命名空间为 App
,并通过 Composer 使用 PSR-4 自动加载标准 自动加载。app
目录包含额外的各种目录,比如:Console
,Http
和 Providers
。将 Console
和 Http
目录视为向应用程序的核心提供 API。HTTP 协议和 CLI 都是与应用程序交互的机制,但实际上并不包含应用程序逻辑。换句话说,它们是向你的应用程序发出命令的两种方式。Console
目录包含所有的 Artisan 命令,而 Http
目录包含你的控制器,中间件和请求。make
Artisan 命令生成类时,将在 app
目录下生成各种其它目录。因此,例如,app/Jobs
目录直到你执行 make:job
Artisan 命令去生成一个作业类之前将不存在app
目录中。为了查看可用的命令,在你的终端运行 php artisan list make
命令。Broadcasting 目录
Broadcasting
目录包含应用程序的所有广播通道类。这些类使用 make:channel
命令生成。此目录默认时不存在的,但是当你创建第一个通道时它将被创建。要了解更多的关于频道的信息,查看有关文档 事件广播。Console 目录
Console
目录包含应用程序的所有自定义 Artisan 命令。这些命令可以使用 make:command
命令生成。此目录也安置了控制台内核,在其中你可以注册自定义的 Artisan 命令,并定义 计划任务。Events 目录
event:generate
和 make:event
Artisan 命令去创建。Events
目录安置 事件类。事件可用于警告应用程序的其它部分发生了一个给定的操作,提供了极大的灵活性和解耦。Exceptions 目录
Exceptions
目录包含应用程序的异常处理,并且也是一个放置应用程序抛出任何异常的好地方。如果你想自定义异常的记录和渲染方式,你应该修改此目录中的 Handler
app
디렉터리에는 Console
, Http
및 Providers
와 같은 다양한 추가 디렉터리가 포함되어 있습니다. Console
및 Http
디렉터리를 애플리케이션의 핵심에 API를 제공하는 것으로 생각하세요. HTTP 프로토콜과 CLI는 모두 애플리케이션과 상호 작용하기 위한 메커니즘이지만 실제로 애플리케이션 로직을 포함하지는 않습니다. 즉, 이는 애플리케이션에 명령을 내리는 두 가지 방법입니다. Console
디렉토리에는 모든 Artisan 명령어가 포함되어 있고 Http
디렉토리에는 컨트롤러, 미들웨어 및 요청이 포함되어 있습니다. {tip} 다수 클래스 패스 Artisan 명령은
app
디렉토리에 생성됩니다. 사용 가능한 명령을 보려면 터미널에서 php artisan list make
명령을 실행하세요. 🎜🎜방송 디렉터리
🎜방송
디렉토리에는 애플리케이션의 모든 방송 채널 클래스가 포함되어 있습니다. 이러한 클래스는 make:channel
명령을 사용하여 생성됩니다. 이 디렉터리는 기본적으로 존재하지 않지만 첫 번째 채널을 생성할 때 생성됩니다. 채널에 대해 자세히 알아보려면 이벤트 방송에 대한 설명서를 확인하세요. 🎜🎜🎜🎜콘솔 디렉터리
🎜콘솔
디렉토리에는 애플리케이션의 모든 사용자 정의 Artisan 명령어가 포함되어 있습니다. 이러한 명령은 make:command
명령을 사용하여 생성할 수 있습니다. 이 디렉토리에는 사용자 정의 Artisan 명령어를 등록하고 예약된 작업을 정의할 수 있는 콘솔 커널도 포함되어 있습니다. 🎜🎜🎜🎜이벤트 디렉터리
🎜이 디렉터리는 기본적으로 존재하지 않습니다 예 , 그러나 event:generate
및 make:event
Artisan 명령을 통해 생성할 수 있습니다. Events
디렉토리는 이벤트 클래스를 배치합니다. 이벤트는 특정 작업이 발생했음을 애플리케이션의 다른 부분에 알리는 데 사용될 수 있으므로 뛰어난 유연성과 분리 기능을 제공합니다. 🎜🎜🎜🎜예외 디렉터리
🎜예외
디렉토리에는 응용 프로그램의 예외 처리가 포함되어 있으며 응용 프로그램에서 발생한 예외를 저장하기에 좋은 장소이기도 합니다. 예외가 기록되고 렌더링되는 방식을 사용자 정의하려면 이 디렉터리에서 Handler
클래스를 수정해야 합니다. 🎜🎜🎜🎜🎜🎜🎜Http 디렉토리
Http
디렉토리에는 컨트롤러, 미들웨어 및 양식 요청이 포함되어 있습니다. 애플리케이션으로 들어오는 요청을 처리하기 위한 거의 모든 로직이 이 디렉터리에 있습니다. Http
目录包含你的控制器,中间件和表单请求。处理进入应用程序请求的所有逻辑几乎都放置在此目录。Jobs 目录
make:job
Artisan 命令时,它将被创建出来。Jobs
目录安置应用程序的 可排队作业。Jobs 可由应用程序排对作业,也可以在当前请求的生命周期内同步运行。在当前请求期间同步运行的 Jobs 有时会称为『命令』,因为它们是 命令模式 的一个实现。Listeners 目录
event:generate
或者 make:listener
Artisan 命令时,它将会被创建出来。Listeners
目录包含 事件 的处理类。事件侦听器接收一个事件实例并执行逻辑以响应被触发的事件。例如,一个 UserRegistered
事件可能被 SendWelcomeEmail
侦听器处理。Mail 目录
make:mail
Artisan 命令,它将被创建出来。Mail
目录包含应用程序发送邮件的所有类。邮件对象允许你去构建一个封装所有逻辑的邮件类,这个简单类中可以使用 Mail::send
方法发送邮件。Notifications 目录
make:notification
Artisan 命令,它将被创建出来。Notifications
目录包含应用程序的发送的所有『事务』通知,比如关于应用程序中发生的事件的简单通知。Laravel 的通知功能抽象了通过各种驱动(如:电子邮件,Slack,SMS 或者存储在数据库中)去发送通知。Policies 目录
make:policy
Artisan 命令,它将被创建出来。Policies
make:job
Artisan 명령어를 실행할 때 생성됩니다. Jobs
디렉토리에는 애플리케이션의 대기열 가능한 작업이 들어 있습니다. 작업은 애플리케이션에 의해 예약되거나 현재 요청의 수명 동안 동기적으로 실행될 수 있습니다. 현재 요청 중에 동기적으로 실행되는 작업은 명령 패턴의 구현이기 때문에 "명령"이라고도 합니다. 🎜🎜🎜🎜event:generate
또는 make:listener
Artisan 명령이 실행될 때 생성됩니다. Listeners
디렉토리에는 이벤트 처리 클래스가 포함되어 있습니다. 이벤트 리스너는 이벤트 인스턴스를 수신하고 트리거되는 이벤트에 응답하여 로직을 실행합니다. 예를 들어 UserRegistered
이벤트는 SendWelcomeEmail
리스너에 의해 처리될 수 있습니다. 🎜🎜🎜🎜make:mail
Artisan 명령을 실행하면 생성됩니다. Mail
디렉토리에는 애플리케이션이 메일을 보내는 데 사용하는 모든 클래스가 포함되어 있습니다. 메일 객체를 사용하면 모든 논리를 캡슐화하는 메일 클래스를 구축할 수 있습니다. 이 간단한 클래스에서는 Mail::send
메서드를 사용하여 메일을 보낼 수 있습니다. 🎜🎜🎜🎜make:notification
Artisan 명령을 실행하면 생성됩니다. Notifications
디렉토리에는 애플리케이션에서 발생한 이벤트에 대한 간단한 알림과 같이 애플리케이션에서 보낸 모든 "트랜잭션" 알림이 포함되어 있습니다. Laravel의 알림 기능은 다양한 드라이버(예: 이메일, Slack, SMS 또는 데이터베이스에 저장된)를 통해 알림 보내기를 추상화합니다. 🎜🎜🎜🎜make:policy
Artisan 명령을 실행하면 생성됩니다. Policies
디렉토리에는 애플리케이션의 인증 정책 클래스가 포함되어 있습니다. 정책은 사용자가 리소스에 대해 특정 작업을 수행할 수 있는지 여부를 결정하는 데 사용됩니다. 자세한 내용은 라이선스 설명서를 참조하세요. 🎜🎜🎜🎜🎜🎜🎜Providers Directory
Providers
디렉터리에는 애플리케이션에 대한 모든 서비스 제공자가 포함되어 있습니다. 서비스 공급자는 서비스 컨테이너에 서비스를 바인딩하거나, 이벤트를 등록하거나, 애플리케이션의 수신 요청에 대한 다른 작업 수행을 준비하여 애플리케이션을 부트스트랩합니다. Providers
目录包含应用程序的所有 服务提供者。服务提供者通过在服务容器中绑定服务引导应用程序,注册事件或者准备为应用程序即将到来的请求执行其它任何任务。Rules 目录
make:rule
Artisan 命令,它将被创建出来。Rules
make:rule
Artisan 명령을 실행하면 생성됩니다. Rules
디렉토리에는 애플리케이션의 사용자 정의 유효성 검사 규칙 개체가 포함되어 있습니다. 규칙은 간단한 개체에 복잡한 유효성 검사 논리를 캡슐화하는 데 사용됩니다. 자세한 내용은 유효성 검사 설명서를 참조하세요. 🎜🎜이 글은 🎜LearnKu.com🎜 웹사이트에 처음 게시되었습니다. 🎜🎜