All Projects → hgraca → Explicit Architecture Php Skeleton

hgraca / Explicit Architecture Php Skeleton

Licence: mit
A repository skeleton with the boilerplate for PHP projects, following Explicit Architecture.

Projects that are alternatives of or similar to Explicit Architecture Php Skeleton

Ribs
Uber's cross-platform mobile architecture framework.
Stars: ✭ 6,641 (+36794.44%)
Mutual labels:  architecture
Mojoc
A cross-platform, open-source, pure C game engine for mobile game.
Stars: ✭ 799 (+4338.89%)
Mutual labels:  architecture
Quarkus Microservices Poc
Very simplified shop sales system made in a microservices architecture using quarkus
Stars: ✭ 16 (-11.11%)
Mutual labels:  architecture
Ios Clean Architecture Mvvm
Template iOS app using Clean Architecture and MVVM. Includes DIContainer, FlowCoordinator, DTO, Response Caching and one of the views in SwiftUI
Stars: ✭ 753 (+4083.33%)
Mutual labels:  architecture
Androidveil
🎭 An easy, flexible way to implement veil skeletons and shimmering effect for Android.
Stars: ✭ 792 (+4300%)
Mutual labels:  skeleton
Huststore
High-performance Distributed Storage
Stars: ✭ 806 (+4377.78%)
Mutual labels:  architecture
Github Explorer
Progressive Web Apps experiment
Stars: ✭ 712 (+3855.56%)
Mutual labels:  architecture
Mdl Skeleton
Material Design skeleton with ssr-engine
Stars: ✭ 17 (-5.56%)
Mutual labels:  skeleton
Shellen
🌸 Interactive shellcoding environment to easily craft shellcodes
Stars: ✭ 799 (+4338.89%)
Mutual labels:  architecture
Cleanarchitecture
Clean Architecture Solution Template: A starting point for Clean Architecture with ASP.NET Core
Stars: ✭ 8,945 (+49594.44%)
Mutual labels:  architecture
Awesome Distributed Systems
A curated list to learn about distributed systems
Stars: ✭ 7,263 (+40250%)
Mutual labels:  architecture
Java Knowledge Mind Map
【🌱🌱Java服务端知识技能图谱】用思维脑图梳理汇总Java服务端知识技能
Stars: ✭ 787 (+4272.22%)
Mutual labels:  architecture
Ansible Skeleton
The skeleton to create new ansible roles.
Stars: ✭ 5 (-72.22%)
Mutual labels:  skeleton
Reactprimer
React component prototyping tool that generates fully connected class component code.
Stars: ✭ 743 (+4027.78%)
Mutual labels:  skeleton
Acwa book ru
Книга "Архитектура сложных веб-приложений. С примерами на Laravel"
Stars: ✭ 886 (+4822.22%)
Mutual labels:  architecture
Vue Content Loading
Vue component to easily build (or use presets) SVG loading cards Facebook like.
Stars: ✭ 729 (+3950%)
Mutual labels:  skeleton
Silex Skeleton
A skeleton to get started with Silex
Stars: ✭ 805 (+4372.22%)
Mutual labels:  skeleton
Androidtddbootstrap
A bootstrap project for TDD Android.
Stars: ✭ 897 (+4883.33%)
Mutual labels:  architecture
Abstractionlayers
Abstraction Layers
Stars: ✭ 16 (-11.11%)
Mutual labels:  architecture
Androidviewmodel
Separating data and state handling from Fragments or Activities without lots of boilerplate-code.
Stars: ✭ 824 (+4477.78%)
Mutual labels:  architecture

Hgraca \ Explicit Architecture PHP Skeleton

This is a skeleton for a project following Explicit Architecture, specifically for a PHP project, although it can be easily adjusted to any programming language.

Usage

To use this skeleton we just need to clone this repo, make a few search/replace steps, and understand how/why the project structure is the way it is, so we can follow The Explicit Architecture principles.

Clone this repo:

git clone [email protected]:hgraca/explicit-architecture-php-skeleton.git lib-name

Replace:

  • Hgraca => The vendor name
  • '<lib-name-description>' => A description for the library
  • lib-name => The library name
  • LibName => The library namespace

Go through the README.md and adapt the template below to your situation.

Explicit Architecture

I explained Explicit Architecture in one of my blog posts, as a result of my understanding of several architectural styles such as (but not limited to) EBI Architecture, DDD, Ports & Adapters Architecture, Onion Architecture and Clean Architecture.

Explicit Architecture

Package by component

Package by component

Dependencies directions

Dependencies

Folder structure

  • bin (application binaries, the dependencies binaries should go in vendor/bin)
  • build (artifacts needed for building the application prior to running it)
  • config (all the config needed to run the application)
  • docs (application documentation)
  • lib (libraries used by the application, which are specific to this application or not distributable (yet))
    • shared-kernel (application and domain code shared among all components/bounded contexts)
      • src
      • tests
    • std-lib (functions and/or classes to be used as if they were part of the language itself)
      • src
      • tests
  • src
    • Core (the application core)
      • Component (the application components/bounded contexts)
      • Port (the ports, to be implemented by the infrastructure adapters)
    • Infrastructure (the port adapters for the infrastructure tools)
    • Presentation (the presentation layer with the several user facing applications, controllers, views and related code units)
  • tests (unit, integration, functional, acceptance tests)
    • build (artifacts needed for running the application tests, like a test DB template)
  • var (volatile artifacts like logs, cache, temporary test databases, generated code, ...)
  • vendor (distributable libraries)

Template for this readme.md:


Hgraca \ LibName

Author Software License Latest Version Total Downloads

Build Status Coverage Status Quality Score

<lib-name-description>

Add here a short description of what is the project. This should explain what the project is. Add here a short description of the motivation behind the creation and maintenance of the project. This should explain why the project exists.

Installation

To install the library, run the command below and you will get the latest version:

composer require hgraca/lib-name

Deployment

Add additional notes about how to deploy this on a live system

Available commands

make run
make test
make test-acc
make test-func
make test-int
make test-unit
make coverage
make cs-fix
make dep-install
make dep-update
make build-container-dev
make build-container-prd
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].