1. Go to this page and download the library: Download zenithsu/laravel-plus library. Choose the download type require.
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
zenithsu / laravel-plus example snippets
use Zenith\LaravelPlus\EasyRouter;
EasyRouter::register();
class UserController
{
#[GetMapping(path: '/login')]
public function login() {}
}
use Zenith\LaravelPlus\Attributes\Routes\GetMapping;
use Zenith\LaravelPlus\Attributes\Routes\PostMapping;
use Zenith\LaravelPlus\Attributes\Routes\Prefix;
#[Prefix(path: '/user')]
class UserController
{
#[GetMapping(path: '/login')]
public function login() {}
#[PostMapping(path: '/register')]
public function register() {}
}
use Zenith\LaravelPlus\Middlewares\RequestBodyInjector;
abstract class Controller implements HasMiddleware
{
public static function middleware(): array
{
return [
RequestBodyInjector::class,
];
}
}
use Zenith\LaravelPlus\Attributes\Routes\GetMapping;
use Zenith\LaravelPlus\Attributes\Requests\RequestBody;
use Zenith\LaravelPlus\Bean;
class UserController extends Controller
{
#[GetMapping(path: '/login')]
public function login(#[RequestBody] RegisterParams $params) {}
}
// The RegisterParams class must extend the Bean class.
class RegisterParams extends Bean
{
// The modifiers must be public or protected.
protected string $username;
protected string $password;
}
use Zenith\LaravelPlus\Middlewares\RequestParamsDefaultValueInjector;
abstract class Controller implements HasMiddleware
{
public static function middleware(): array
{
return [
RequestParamsDefaultValueInjector::class
ParameterValidation::class,
];
}
}
use Zenith\LaravelPlus\Attributes\Validators\Param;
class UserController extends Controller
{
#[GetMapping(path: '/login')]
#[Param(key: 'username', rules: '
use Closure;
use Illuminate\Contracts\Validation\ValidationRule;
class PasswordRule implements ValidationRule
{
public function validate(string $attribute, mixed $value, Closure $fail): void
{
$isPass = strlen($value) >= 8 && preg_match('/[a-zA-Z]/', $value) &&
preg_match('/\d/', $value) &&
preg_match('/[^a-zA-Z\d]/', $value);
if (! $isPass) {
$fail('The :attribute must be least 8 characters and contain at least one letter, one number and one special character.');
}
}
}
use Zenith\LaravelPlus\Attributes\Validators\Param;
class UserController
{
#[GetMapping(path: '/login')]
#[Param(key: 'username', rules: PasswordRule::class, message: 'password is error')]
public function login() {}
}
use Zenith\LaravelPlus\Attributes\Validators\Param;
use Zenith\LaravelPlus\Attributes\Requests\RequestBody;
class UserController extends Controller
{
#[Param(key: 'page', rule: 'integer|min:1|max:100', default: 1,
use Zenith\LaravelPlus\Bean;
$bean = new Bean();
class Bar extends Bean {
// some properties
}
Bar::fromBean($bean)
use Zenith\LaravelPlus\Bean;
$bean = new Bean();
$arr = $bean->toArray(usingSnakeCase: false)
$json = $bean->toJson(usingSnakeCase: true);
use Zenith\LaravelPlus\Bean;
(new Bean())->equals($bean2);
use Zenith\LaravelPlus\Bean::
use Zenith\LaravelPlus\Attributes\TypeConverter;
class User extends Bean
{
#[TypeConverter(value: BoolConverter::class)]
protected BoolEnum $isGuest;
}
class BoolConverter
{
public function convert(bool|string $value): BoolEnum
{
if ($value === 'YES' || $value === 'yes' || $value === 'y' || $value === 'Y') {
return BoolEnum::TRUE;
}
if ($value === 'NO' || $value === 'no' || $value === 'N' || $value === 'n') {
return BoolEnum::FALSE;
}
return $value ? BoolEnum::TRUE : BoolEnum::FALSE;
}
}
use Zenith\LaravelPlus\Bean;
class User extends Bean
{
protected Company $company;
}
class Company extends Bean
{
protected string $name;
}
use Zenith\LaravelPlus\Bean;
use Zenith\LaravelPlus\Attributes\BeanList;
/**
* @method Company[] getCompanies()
*/
class User extends Bean
{
/**
* @var Company[]
*/
#[BeanList(value: Company::class)]
protected array $companies;
}
$user = new User(['companies' => [['name' => 'Zenith'], ['name' => 'Google']]]);
foreach ($user->getCompanies() as $company) {
dump($company->getName());
}
use Zenith\LaravelPlus\Traits\Injectable;
class UserController
{
use Injectable;
#[Autowired]
private UserService $userService;
public function register()
{
$this->userService->register();
}
}
use Zenith\LaravelPlus\Attributes\Service;
#[Service]
class UserService
{
public function register() {}
}
Loading please wait ...
Before you can download the PHP files, the dependencies should be resolved. This can take some minutes. Please be patient.