PHP code example of zenithframework / framework

1. Go to this page and download the library: Download zenithframework/framework 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/ */

    

zenithframework / framework example snippets


#[Prefix('/users')]
#[Middleware(['auth'])]
class UserController
{
    #[Get('/', name: 'users.index')]
    public function index(): Response
    {
        return view('users.index', ['users' => User::all()]);
    }

    #[Post('/', middleware: ['csrf'])]
    public function store(Request $request): Response
    {
        $user = User::create($request->validated());
        return redirect()->route('users.show', ['id' => $user->id]);
    }
}

#[Get('/chat/{roomId}/stream')]
public function stream(Request $request, int $roomId): StreamingResponse
{
    return new StreamingResponse(
        new SseStream(
            dataProvider: fn($lastId) => $this->getNewMessages($roomId, $lastId),
            pollInterval: 1,
            heartbeatInterval: 15,
            timeout: 1800
        )
    );
}

class User extends Model
{
    use SoftDeletes;
}

// Soft delete
$user->delete();

// Restore
$user->restore();

// Include trashed
$users = User::withTrashed()->get();

class PostObserver extends Observer
{
    public function creating(Post $post): void
    {
        $post->slug = str($post->title)->slug();
    }

    public function created(Post $post): void
    {
        event(new PostCreated($post));
    }
}

// Register
Post::observe(PostObserver::class);

// Define gate
Gate::define('update-post', function ($user, $post) {
    return $user->id === $post->user_id;
});

// Check gate
if (Gate::allows('update-post', $post)) {
    // User can update
}

// In controller
$this->authorizeAbility('update', $post);

// In Console Kernel
$scheduler->command('cache:clear')
    ->hourly()
    ->withoutOverlapping();

$scheduler->command('db:backup')
    ->dailyAt('2:00')
    ->onOneServer();
bash
php zen make:model User
php zen make:controller UserController
php zen make:migration create_users_table
php zen make:seeder UserSeeder
php zen make:factory UserFactory
php zen make:layout dashboard --type=app
php zen make:middleware Auth
php zen make:request StoreUser
php zen make:job ProcessOrder
php zen make:event UserRegistered
php zen make:listener SendWelcomeEmail
bash
php zen remove:model User
php zen remove:controller UserController
php zen remove:migration create_users_table
php zen remove:seeder UserSeeder
bash
php zen migrate
php zen migrate --rollback
php zen migrate --reset
php zen db:seed
bash
php zen route:list
php zen cache:clear
php zen serve
php zen lint
php zen test