sikessem/framework
Sikessem Framework is a Laravel customization built for the Sikessem/Starter ecosystem. Requires PHP 8.2+ and Composer v2+. Install via Composer (sikessem/framework) to use the framework’s tailored conventions and tooling in your app.
Installation:
composer require sikessem/framework
Ensure your project meets the PHP 8.2+ requirement and has Composer v2+.
Publish Configuration:
Run the framework’s publisher (if available) or manually copy config files from vendor/sikessem/framework/config to config/sikessem. Key files likely include:
auth.php (custom auth logic)api.php (API scaffolding)starter.php (Sikessem/Starter integration)First Use Case:
AuthServiceProvider to extend Sikessem\Auth\AuthServiceProvider.Route::apiResource('users', \Sikessem\Http\Controllers\UserController::class);
sikessem-card, sikessem-form) in Blade templates:
<x-sikessem-card>
{{ $slot }}
</x-sikessem-card>
Verify Setup:
php artisan sikessem:install (if the package includes an installer) or check the README for post-install commands.src/ for core classes (e.g., AuthServiceProvider, Http/Controllers/).config/sikessem.php for customization points.v0.10.0 (latest as of assessment).sikessem/starter is installed (though not explicitly required in the composer.json).// app/Providers/AppServiceProvider.php
public function register()
{
if (! app()->bound('sikessem.auth')) {
$this->app->register(\Sikessem\Auth\AuthServiceProvider::class);
}
}
AppServiceProvider.config/app.php:
'bindings' => [
App\Models\User::class => \Sikessem\Models\User::class,
],
// routes/api.php
Route::prefix('v1')->group(function () {
Route::resource('posts', \Sikessem\Http\Controllers\PostController::class)
->middleware('auth:sikessem'); // Custom auth middleware
});
\Sikessem\Http\Controllers\Controller: Base controller with pre-built methods (e.g., authorizeResource).\Sikessem\Http\Resources\Resource: Custom API resources for JSON:API or GraphQL-like responses.<!-- resources/views/layouts/app.blade.php -->
<x-sikessem.layout>
<x-slot name="header">
<h1>Dashboard</h1>
</x-slot>
<x-sikessem.card>
{{ __("Welcome to Sikessem!") }}
</x-sikessem.card>
</x-sikessem.layout>
php artisan vendor:publish --tag=sikessem.views
resources/views/vendor/sikessem/.// app/Http/Kernel.php
protected $routeMiddleware = [
'sikessem.auth' => \Sikessem\Http\Middleware\Authenticate::class,
'sikessem.throttle' => \Sikessem\Http\Middleware\ThrottleRequests::class,
];
Authenticate: Sikessem’s auth logic (e.g., JWT or session-based).CheckPermission: Role-based access control (RBAC).// app/Providers/EventServiceProvider.php
protected $listen = [
\Sikessem\Events\UserRegistered::class => [
\App\Listeners\SendWelcomeEmail::class,
],
];
UserRegistered, UserLoggedIn, ApiRequestHandled.Scaffold a Module:
php artisan sikessem:make module Users --auth --api
(Assuming the package includes a make:module command.)
Customize the Module:
app/Http/Controllers/UsersController.php.resources/views/users/.Test Locally:
use Sikessem\Testing\TestCase;
php artisan test --filter=UserTest
Deploy:
config/sikessem.php is synced across environments.php artisan migrate --path=vendor/sikessem/framework/database/migrations
# .github/workflows/test.yml
jobs:
test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: shivammathur/setup-php@v2
with:
php-version: '8.2'
- run: composer install
- run: composer require sikessem/framework --dev
- run: php artisan sikessem:test
FROM composer:2 as builder
WORKDIR /app
COPY . .
RUN composer install --no-dev
FROM laravel:8.2-fpm
COPY --from=builder /app /app
RUN apt-get update && apt-get install -y php8.2-mbstring
Laravel Packages:
$this->app->bind(
\Laravel\Fortify\Fortify::class,
\Sikessem\Fortify\Fortify::class
);
composer.json to avoid surprises:
"sikessem/framework": "^0.10.0"
Database:
vendor/sikessem/framework/database/migrations. Run them last:
php artisan migrate --path=database/migrations --path=vendor/sikessem/framework/database/migrations
php artisan db:seed --class=SikessemDatabaseSeeder
Testing:
$this->mock(\Sikessem\Services\AuthService::class, function ($mock) {
$mock->shouldReceive('checkPermission')->andReturn(true);
});
use Sikessem\Testing\CreatesUsers;
use Sikessem\Testing\InteractsWithApi;
class UserTest extends TestCase {
use CreatesUsers, InteractsWithApi;
}
Performance:
config/cache.php.\Sikessem
How can I help you explore Laravel packages today?