Download the PHP package inium/laravel-mvcs without Composer

On this page you can find all versions of the php package inium/laravel-mvcs. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.

FAQ

After the download, you have to make one include require_once('vendor/autoload.php');. After that you have to import the classes with use statements.

Example:
If you use only one package a project is not needed. But if you use more then one package, without a project it is not possible to import the classes with use statements.

In general, it is recommended to use always a project to download your libraries. In an application normally there is more than one library needed.
Some PHP packages are not free to download and because of that hosted in private repositories. In this case some credentials are needed to access such packages. Please use the auth.json textarea to insert credentials, if a package is coming from a private repository. You can look here for more information.

  • Some hosting areas are not accessible by a terminal or SSH. Then it is not possible to use Composer.
  • To use Composer is sometimes complicated. Especially for beginners.
  • Composer needs much resources. Sometimes they are not available on a simple webspace.
  • If you are using private repositories you don't need to share your credentials. You can set up everything on our site and then you provide a simple download link to your team member.
  • Simplify your Composer build process. Use our own command line tool to download the vendor folder as binary. This makes your build process faster and you don't need to expose your credentials for private repositories.
Please rate this library. Is it a good library?

Informations about the package laravel-mvcs

laravel-mvcs

Laravel 로 구현된 Repository-Service Scaffolding 구현한 패키지 입니다.

개요

Laravel에 Repository - Service를 사용할 수 있도록 Scaffolding 을 만들어주는 패키지 입니다.

Laravel은 Controller에 Request & Response 처리와 Business Logic을 쉽고 빠르게 구현할 수 있도록 제공합니다. 그러나 이와 같은 구성에서 Business Logic 만의 재사용은 제약이 생길 수 밖에 없습니다. 그래서 일부 Framework(ex. Spring Boot, NestJS) 에서는 관심사(Response & Response, Business Logic, DB Logic 등)를 계층화 하여 (Repository - Service) 사용하는 Layered architecture 패턴을 제공하고 있습니다. 또한 대규모 프로젝트의 경우 관심사를 분리하는 것이 프로젝트가 성공적으로 수행되고 재사용과 지속적인 유지 및 운영되는데 적합합니다.

Laravel은 이러한 Layered Architecture 구현에 필요한 Scaffolding 코드를 제공하고 있지 않습니다. 그래서 Laravel에서 Repository 와 Service 구현을 위해 Scaffolding을 프로젝트에 생성하여 제공해주는 패키지를 제작하였습니다.

본 패키지는 PHP 8.1 / Laravel 9 기반으로 동작합니다.

기능

본 패키지는 Controller내 REST API 기본 구현이 포함된 Layered Architecture Scaffolding을 제공합니다.

Layered Architecture 구현에 필요한 Scaffolding 생성

본 패키지는 REST API 기본 구현이 필요한 코드를 사용방법의 코드 생성 명령어를 통해 아래 항목들을 자동으로 생성하여 줍니다. REST API 기본 구현은 Controller 내 Service Interface를 Injection 하여 사용하도록 구현하였습니다.

항목 설명 생성위치 / 파일명 규칙 비고
Controller Request & Response, Service 코드를 호출하는 컨트롤러 app/Http/Controllers/{moduleName}Controller.php REST API 구현 포함
Repository Database Logic (Query) 구현
- Interface, Concrete class 생성
- Interface: app/Modules/{moduleName}/Interfaces/{moduleName}RepositoryInterface.php
- Concrete: app/Modules/{moduleName}/{moduleName}Repository.php
Service Business Logic 구현하는 클래스
- Interface, Concrete class 생성
- Interface: app/Modules/{moduleName}/Interfaces/{moduleName}ServiceInterface.php
- Concrete: app/Modules/{moduleName}/{moduleName}Service.php
DTO
(Data Transfer Object)
Controller -> Service 로 사용자 요청 데이터를 전송하는 객체 - Page: app/Modules/{moduleName}/Dto/Page{moduleName}Dto.php
- Create: app/Modules/{moduleName}/Dto/Create{moduleName}Dto.php

- Update: app/Modules/{moduleName}/Dto/Update{moduleName}Dto.php

- 일반: app/Modules/{moduleName}/Dto/{moduleName}Dto.php
Request 사용자 요청 코드
- Page, Create, Update request 생성
- Page: app/Http/Requests/{moduleName}/Page{moduleName}Request.php
- Create: app/Http/Requests/{moduleName}/Create{moduleName}Request.php
- Update: app/Http/Requests/{moduleName}/Update{moduleName}Request.php
Model 데이터베이스 모델 app/Models/{moduleName}.php --model 옵션 사용시 제외
Database Migration, Factory, Seeders - Factory: /database/factories/{moduleName}Factory.php
- Migrations: /database/migrations/{year}_{month}_{day}_{time}_create_{moduleName}.php
- Seeders: /database/seeders/{moduleName}Seeder.php
--model 옵션 사용시 제외

동작 환경

본 패키지는 PHP 8.1 / Laravel 9 기반으로 동작합니다.

사용방법

1. Package Install

아래와 같이 Laravel 9.x가 설치된 프로젝트 디렉터리 내에서 composer 명령어를 이용해 설치합니다.

2. 코드 생성

패키지 설치 후 아래 명령어를 이용해 repository - service Scaffolding 코드를 생성하여 사용합니다.

명령어의 Parameter는 아래와 같습니다.

게시판의 게시글 클래스(Post) 생성 사용 예는 아래와 같습니다.

3. (Optional) 생성한 Interface - concrete 클래스의 Bind 대행 Provider 생성

코드를 생성한 후 Repository, Service 클래스 사용을 위해서는 AppServiceProvider에 interface -> concrete 클래스를 bind 해주어야 합니다.

그러나 bind할 interface - concrete 클래스가 많아지면 매번 수동으로 입력해주어야 합니다. 그래서 본 패키지에서는 정해진 규칙으로 app/Modules 디렉터리에 interface - concrete Scaffolding 들을 Publish 해주고 있기 때문에 이 과정을 줄이고자 bind를 대행해주는 Service Provider를 제공하고 있습니다.

주의: 제공하는 Service Provider를 사용할 경우 특정 interface - concrete 클래스의 bind 수정은 불가능합니다.

예를 들어, PostServiceInterface -> PostService를 PostServiceInterface -> PostNewService 로 변경하고자 할 경우 제공하는 Service Provider 클래스에서는 변경이 불가능합니다. 이 경우 제공하는 Service Provider 사용을 중지하고 직접 bind를 해야 합니다.

3-1. Publish provider

아래 명령어를 실행하면 app/Providers내 MvcsServiceProvider.php가 생성됩니다. 이 클래스는 본 패키지의 명령어를 통해 생성한 interface-concrete class를 bind 해주는 코드가 구현되어 있습니다.

3-2. config/app.php에 Provider 등록

Publish한 provider를 사용하기 위해서는 config/app.php 내 providera 항목에 아래와 같이 provider를 등록해주어야 합니다.

Example

본 패키지를 이용해 구현한 게시판, 게시글, 게시글 댓글을 구현한 코드가 Laravel 구조에 맞추어 example 디렉터리에 저장되어 있으니 참고 바랍니다.

LICENSE

MIT


All versions of laravel-mvcs with dependencies

PHP Build Version
Package Version
Requires php Version ^8.1
netresearch/jsonmapper Version ^4.0
symfony/http-foundation Version ^6.0
Composer command for our command line client (download client) This client runs in each environment. You don't need a specific PHP version etc. The first 20 API calls are free. Standard composer command

The package inium/laravel-mvcs contains the following files

Loading the files please wait ....