Recommend this page to a friend! |
![]() ![]() |
Info | ![]() |
![]() |
![]() ![]() |
Reputation | Support forum | Blog (1) | Links |
Last Updated | Ratings | Unique User Downloads | Download Rankings | |||||
2022-10-15 (7 months ago) ![]() | Not yet rated by the users | Total: 40 | All time: 10,651 This week: 200![]() |
Version | License | PHP version | Categories | |||
potatoservice 1.0 | GNU General Publi... | 8.1 | Libraries, Design Patterns, PHP 8 |
New version of PotatoFramework
PotatoService try implement the CQRS pattern, but it is still in first steps.
All requests can be mapped by resource and and initialized by the runner, if you created a new Resource file, just go on application/runner/Main.php and put the class in loadResource();
Routes::registerResources([
DemoQueryResource::class
]);
On your resource file, you just use Attribute #[Route]
to mapping your routes [see: application/resource/DemoQueryResource].
#[Route(route: 'Home', code: StatusCode::OK, type: HttpRequest::GET, headers: [ ContentType::CONTENT_JS ])]
public function exampleRouting(DemoResquest $demoResquest){
$this->testeService->execute();
}
You can map the request input data (Post, Get, etc), just create a class and extend it to MapRequest, after, just set this in yout method. With this you can use attributes to validate all you need.
class DemoResquest extends MapRequest {
#[MinLength(5)]
public ?string $nome;
#[NotBlank]
public ?string $sobrenome;
}
Create a services to mantain your business rules in domain layer and use it in your application layer
class TesteService extends Services {
#[Autowired(class: TesteRepository::class)]
public TesteRepository $testeRepository;
public function execute(){}
}
We have a BusinessException and ServerException, when any exception is called the system output a json with this error, BussinessException use code 400 and ServerException use 500.
You can create your exceptions and use it to show a more detailed info about the error.
We use a Eloquent ORM and try simulate a small Repository with it. When you create a Model, you just extend it with EntityModel and use attribute in class #[Entity(tableName: 'teste', properties: ['timestamps' => false])]
In model you can map your columns table and validate it, ex:
#[Entity(tableName: 'teste', properties: ['timestamps' => false])]
class Teste extends EntityModel {
#[Column(name: "id", primaryKey: true)]
public $id;
#[NotBlank]
#[Column(name: "nome")]
public $nome;
}
After, you create a new Repository class and extend it on Repository
:
#[SetRepository(entity: Teste::class)]
class TesteRepository extends Repository {
}
You can use atribte Autowired to load it your application layer or in your services, example:
#[Autowired(class: TesteRepository::class)]
public TesteRepository $testeRepository;
We have same attributes
#[Route]
Can only be used on Resources. Used to mapping your routes
#[Transactional]
Can only be used on Resources with routes and any exeception make a rollback in your database [Tested with MySQL]
#[Cache]
Can only be used on Resources to create a cache for your output response
#[Autowired]
Can used by Resources and Services and is related to dependency injection
You can create a validation attribute, just create a class and implement a iValidation
interface
By default we have same validations attributes and all can be used in EntityModel
and MapQuest
#[AssertFalse]
#[AssertTrue]
#[Decimal]
#[Email]
#[Future]
#[FutureOrPresent]
#[Max]
#[Min]
#[MinLength]
#[MaxLength]
#[Negative]
#[NegativeOrZero]
#[NotBlank]
#[NotEmpty]
#[NotNull]
#[Numeric]
#[Password]
#[Past]
#[PastOrPresent]
#[Pattern]
#[PositiveOrZero]
#[Url]
![]() |
File | Role | Description | ||
---|---|---|---|---|
![]() |
||||
![]() |
||||
![]() |
||||
![]() ![]() |
Data | Auxiliary data | ||
![]() ![]() |
Aux. | Auxiliary script | ||
![]() ![]() |
Lic. | License text | ||
![]() ![]() |
Doc. | Documentation |
![]() |
/ | application |
![]() |
/ | application | / | resources |
File | Role | Description | ||
---|---|---|---|---|
![]() |
||||
![]() |
Class | Class source |
![]() |
/ | domain |
File | Role | Description | ||
---|---|---|---|---|
![]() |
||||
![]() |
||||
![]() |
||||
![]() ![]() |
Data | Auxiliary data |
![]() |
/ | infrastructure |
![]() |
/ | infrastructure | / | core |
File | Role | Description | ||
---|---|---|---|---|
![]() |
||||
![]() |
||||
![]() |
||||
![]() |
||||
![]() |
||||
![]() |
||||
![]() |
||||
![]() |
||||
![]() |
||||
![]() |
Class | Class source |
![]() |
/ | infrastructure | / | core | / | attributes |
File | Role | Description | ||
---|---|---|---|---|
![]() |
||||
![]() |
Class | Class source | ||
![]() |
Class | Class source | ||
![]() |
Class | Class source | ||
![]() |
Class | Class source |
![]() |
/ | infrastructure | / | core | / | attributes | / | validation |
File | Role | Description |
---|---|---|
![]() |
Class | Class source |
![]() |
Class | Class source |
![]() |
Class | Class source |
![]() |
Class | Class source |
![]() |
Class | Class source |
![]() |
Class | Class source |
![]() |
Class | Class source |
![]() |
Class | Class source |
![]() |
Class | Class source |
![]() |
Class | Class source |
![]() |
Class | Class source |
![]() |
Class | Class source |
![]() |
Class | Class source |
![]() |
Class | Class source |
![]() |
Class | Class source |
![]() |
Class | Class source |
![]() |
Class | Class source |
![]() |
Class | Class source |
![]() |
Class | Class source |
![]() |
Class | Class source |
![]() |
Class | Class source |
![]() |
Class | Class source |
![]() |
Class | Class source |
![]() |
/ | infrastructure | / | core | / | database |
File | Role | Description | ||
---|---|---|---|---|
![]() |
||||
![]() |
||||
![]() |
Class | Class source | ||
![]() |
Class | Class source | ||
![]() |
Class | Class source | ||
![]() |
Class | Class source |
![]() |
/ | infrastructure | / | core | / | database | / | attributes |
File | Role | Description |
---|---|---|
![]() |
Class | Class source |
![]() |
Class | Class source |
![]() |
Class | Class source |
![]() |
/ | infrastructure | / | core | / | database | / | interfaces |
File | Role | Description |
---|---|---|
![]() |
Class | Class source |
![]() |
Class | Class source |
![]() |
/ | infrastructure | / | core | / | enums |
File | Role | Description |
---|---|---|
![]() |
Class | Class source |
![]() ![]() |
Aux. | Auxiliary script |
![]() ![]() |
Aux. | Auxiliary script |
![]() ![]() |
Aux. | Auxiliary script |
![]() |
/ | infrastructure | / | core | / | exception |
File | Role | Description |
---|---|---|
![]() |
Class | Class source |
![]() |
Class | Class source |
![]() |
Class | Class source |
![]() |
Class | Class source |
![]() |
Class | Class source |
![]() |
Class | Class source |
![]() |
Class | Class source |
![]() |
/ | infrastructure | / | core | / | factory |
File | Role | Description |
---|---|---|
![]() |
Class | Class source |
![]() |
/ | infrastructure | / | core | / | general |
File | Role | Description |
---|---|---|
![]() |
Class | Class source |
![]() |
Class | Class source |
![]() |
Class | Class source |
![]() |
Class | Class source |
![]() |
Class | Class source |
![]() |
Class | Class source |
![]() |
Class | Class source |
![]() |
/ | infrastructure | / | core | / | http |
File | Role | Description |
---|---|---|
![]() |
Class | Class source |
![]() |
Class | Class source |
![]() |
Class | Class source |
![]() |
Class | Class source |
![]() |
Class | Class source |
![]() |
Class | Class source |
![]() |
Class | Class source |
![]() |
/ | infrastructure | / | core | / | interfaces |
File | Role | Description |
---|---|---|
![]() |
Class | Class source |
![]() |
Class | Class source |
![]() |
Class | Class source |
![]() |
Class | Class source |
![]() |
/ | infrastructure | / |
File | Role | Description |
---|---|---|
![]() |
Class | Class source |
![]() |
Class | Class source |
![]() |
/ | infrastructure | / | file |
File | Role | Description | ||
---|---|---|---|---|
![]() |
||||
![]() |
Class | Class source |
![]() |
/ | infrastructure | / | file | / | Upload |
File | Role | Description | ||
---|---|---|---|---|
![]() |
||||
![]() |
||||
![]() |
Class | Class source | ||
![]() |
Class | Class source | ||
![]() |
Class | Class source | ||
![]() |
Class | Class source | ||
![]() |
Class | Class source | ||
![]() |
Class | Class source | ||
![]() |
Class | Class source |
![]() |
/ | infrastructure | / | file | / | Upload | / | Storage |
File | Role | Description |
---|---|---|
![]() |
Class | Class source |
![]() |
/ | infrastructure | / | file | / | Upload | / | Validation |
File | Role | Description |
---|---|---|
![]() |
Class | Class source |
![]() |
Class | Class source |
![]() |
Class | Class source |
![]() |
Class | Class source |
![]() |
/ | infrastructure | / | helpers |
File | Role | Description |
---|---|---|
![]() ![]() |
Example | Example script |
![]() ![]() |
Example | Example script |
![]() |
/ | infrastructure | / | i18n | / | pt_BR | / | LC_MESSAGES |
File | Role | Description |
---|---|---|
![]() ![]() |
Data | Auxiliary data |
![]() |
/ | infrastructure | / | libraries | / | Moment |
File | Role | Description | ||
---|---|---|---|---|
![]() |
||||
![]() |
||||
![]() |
Class | Class source | ||
![]() |
Class | Class source | ||
![]() |
Class | Class source | ||
![]() |
Class | Class source | ||
![]() |
Class | Class source | ||
![]() |
Class | Class source | ||
![]() |
Class | Class source |
![]() |
/ | infrastructure | / | libraries | / | Moment | / | CustomFormats |
File | Role | Description |
---|---|---|
![]() |
Class | Class source |
![]() |
/ | infrastructure | / | libraries | / | Moment | / | Locales |
File | Role | Description |
---|---|---|
![]() ![]() |
Aux. | Auxiliary script |
![]() ![]() |
Example | Example script |
![]() ![]() |
Aux. | Auxiliary script |
![]() ![]() |
Aux. | Auxiliary script |
![]() ![]() |
Aux. | Auxiliary script |
![]() ![]() |
Aux. | Auxiliary script |
![]() ![]() |
Aux. | Auxiliary script |
![]() ![]() |
Aux. | Auxiliary script |
![]() ![]() |
Aux. | Auxiliary script |
![]() ![]() |
Example | Example script |
![]() ![]() |
Aux. | Auxiliary script |
![]() ![]() |
Aux. | Auxiliary script |
![]() ![]() |
Aux. | Auxiliary script |
![]() ![]() |
Aux. | Auxiliary script |
![]() ![]() |
Example | Example script |
![]() ![]() |
Aux. | Auxiliary script |
![]() ![]() |
Example | Example script |
![]() ![]() |
Aux. | Auxiliary script |
![]() ![]() |
Aux. | Auxiliary script |
![]() ![]() |
Aux. | Auxiliary script |
![]() ![]() |
Aux. | Auxiliary script |
![]() ![]() |
Aux. | Auxiliary script |
![]() ![]() |
Aux. | Auxiliary script |
![]() ![]() |
Aux. | Auxiliary script |
![]() ![]() |
Example | Example script |
![]() ![]() |
Example | Example script |
![]() ![]() |
Aux. | Auxiliary script |
![]() ![]() |
Aux. | Auxiliary script |
![]() ![]() |
Aux. | Auxiliary script |
![]() ![]() |
Aux. | Auxiliary script |
![]() ![]() |
Aux. | Auxiliary script |
![]() ![]() |
Aux. | Auxiliary script |
![]() ![]() |
Example | Example script |
![]() ![]() |
Aux. | Auxiliary script |
![]() ![]() |
Aux. | Auxiliary script |
![]() ![]() |
Aux. | Auxiliary script |
Version Control | Unique User Downloads | Download Rankings | |||||||||||||||
100% |
|
|
Applications that use this package |
If you know an application of this package, send a message to the author to add a link here.