Download the PHP package so-lean/cleanprospecter without Composer
On this page you can find all versions of the php package so-lean/cleanprospecter. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Download so-lean/cleanprospecter
More information about so-lean/cleanprospecter
Files in so-lean/cleanprospecter
Package cleanprospecter
Short Description P.O.C. of clean architecture (unclebob)
License MIT
Informations about the package cleanprospecter
Cleanprospecter
Cleanprospecter is a php 7.2 business prospect application designed according to Robert C. Martin recommendations for clean architecture.
Add cleanprospecter in your project with composer.
A symfony 4.1 implementation can be found on github here
Progress
Consider that scope as the minimal viable product.
- [x] As anonymous, I want to login
- [x] As main app, I want to refresh user
- [x] As prospector, I want to create organization
- [x] As prospector, I want to find my own organizations
- [x] As prospector, I want to get organization
- [x] As prospector, I want to update organization
- [x] As prospector, I want to create organization
- [x] As user, I want to get my account information
- [x] As user, I want to update my account information
- [x] As user, I want to remove my organization logo
- [ ] As prospector, I want to create prospect
- [ ] As prospector, I want to find my own prospects
- [ ] As prospector, I want to create phone call event
- [ ] As prospector, I want to create appointment event
- [ ] As prospector, I want to create email event
- [ ] As prospector, I want to create sms event
- [ ] As prospector, I want to find my own prospects
In the future
- tags
- auto import events from email box, short message service etc...
- email marketing campaign
Clean architecture -Business rules as a simple composer package.-
A good explanation is available in this Uncle Bob talk here
A GOOD ARCHITECTURE MAXIMIZES THE NUMBER OF DECISIONS NOT MADE
- UNCLE BOB
Terminological differences
In order to clarify some uncle bob concepts
- Interactors becomes use cases and are locatated in src/UseCase/UseCaseName and take its name from it : ex FindMyOwnOrganizations
- Request an response are data transfer object and are located at the same place : ex FindMyOwnOrganizationsRequest, FindMyOwnOrganizationsResponse
- Presenter interface (Dependency inversion) too : ex FindMyOwnOrganizationsPresenter
- Gateways is not only database abstraction, entity gateway are located in src/Gateway/Entity
How to implement cleanprospecter
Clean architecture use dependency injection to build uses cases.
1 You need to implement all Gateways in your main application
- Build use cases in the IOC
- Register it in the facade.
A use case can say what it does
Developer tools
prerequisites
- docker
- docker-compose
All common command lines are accessible by the Makefile. Make create a docker image based on official php alpine docker image (php 7.2.3) with xdebug and composer installed globally.
Commands
make command
Command | comments |
---|---|
build-env | Build the docker env file tagged prospecter-run |
composer | install vendors |
composer-update | update vendors |
test | execute tests suite |
testdox | execute tests and write agile documentation in text format |
test-coverage | execute tests and generate report in html format |
cs | code sniffer |
cs-fix | fix automatically code sniffer errors |