Download the PHP package arch/repositories without Composer
On this page you can find all versions of the php package arch/repositories. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Download arch/repositories
More information about arch/repositories
Files in arch/repositories
Package repositories
Short Description Central repositories passing and receiving data between controller and model
License MIT License
Informations about the package repositories
Arch Repositories
Laravel Package for Central repositories passing and receiving data from database. This package react as a bridge between Controller, Model and database. All the reusable code should located in one place and called when needed.
Package Installation
1) Package can be installed using composer, just require it :
`composer require arch/repositories`
2) After install, add ArchServiceProvider
to provider array in config/app.php
as follow :
Canal, Repositories and Model Installation
Before everything can be used, we must create Canal
and Repositories
for the application and make use of trait class for the Model
.
1) Generate Repositories
Repositories
is a normal php class having all the functionalities to play with the Laravel Query Builder
for database querying. You can find out all the available method at Available method
section. Use below command for generating repositories
:
php artisan shareable:repositories <RepositoriesName> --model=<modelName>
eg :
php artisan shareable:repositories UserRepositories --model=User
RepositoriesName - Repositories name
modelName - Model name. This model were tied with repositories.
This command will create Repositories
file inside App\Repositories
directory on the fly. One repositories should have one model that tied with it. For ease of use, create repositories with descriptive name. Eg : UserRepositories
, then we know that this repositories belongs to User
model.
2) Generate Canal
Canal is a normal php class having all the reusable method that were created to call inside the controller
. We didn't call the model directly inside controller
instead we use this Canal
class for that purpose to manage data passing/retreiving. This class should have methods that call Repositories
's method.
php artisan shareable:canal <CanalName>
eg :
php artisan shareable:canal UserModuleCanal
CanalName - Canal name.
This command will create Canal
file inside App\Canal
directory on the fly. This class should contains all the reusable code. As example we have UserModule
for simple/complex crud operation, user permission and anything else. Then, all the methods can be placed inside UserModuleCanal
, and UserModuleCanal
can call any of Repositories
's method inside of it. Later on, if we have two controller for the Web
application and Api
stuff with the same behaviour, we can just call the UserModuleCanal
for both controller
as they all share the same functionality.
3) Make use of traits inside Model
Last, include trait Arch\Util\Instantiate
inside our Model
that tied with the Repositories
as follow :
Follow these 3 steps for another module. Done!
Usage Example
1) First, include Canal
class inside Controller
, eg : UserController
:
2) Create reusable code inside Canal
class, eg : UserModuleCanal
:
3) Simple example of Repositories, eg : UserRepositories
:
4) Map the route to that controller and you're good to go.
Built-in Utilities/Libraries
- Encryption (Using laravel encryption and Hashids by @ivanakimov)
- MultiCurl
- More utilities and libraries will added in future........
1) Encryption
Require the util inside controller directly after namespace keyword :
use Arch\Libs\Fence
Usage example :
a) Encrypt data
Return encrypted data
b) Decrypt data
Return decrypted data
c) Hash
Return hashed data
d) Compare
Return decrypted Data if success, otherwise false
e) Encode(Hashids)
Return encrypted data
f) Decode(Hashids)
Return decrypted data
g) Match(Hashids)
Return decrypted Data if success, otherwise false
2) MultiCurl
This util is same with MultiCurl as this package were required its automatically at package installation using composer. Require the util inside controller directly after namespace keyword :
use Arch\Libs\MultiCurl
Usage example : Example can be found directly at MultiCurl. The only different is you need to require the util using use Arch\Libs\MultiCurl
instead of individual use Arch\MultiCurl\MultiCurl;
. But both are the same. The choices is yours.
Supports
- Well, just open an issues
Contribute
Feel free to fork and create PR