Weave Code
Code Weaver
Helps Laravel developers discover, compare, and choose open-source packages. See popularity, security, maintainers, and scores at a glance to make better decisions.
Feedback
Share your thoughts, report bugs, or suggest improvements.
Subject
Message

Framework Laravel Package

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.

View on GitHub
Deep Wiki
Context7

Getting Started

Minimal Steps

  1. Installation:

    composer require sikessem/framework
    

    Ensure your project meets the PHP 8.2+ requirement and has Composer v2+.

  2. 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)
  3. First Use Case:

    • Authentication: Replace Laravel’s default auth with Sikessem’s by updating AuthServiceProvider to extend Sikessem\Auth\AuthServiceProvider.
    • API Routes: Use Sikessem’s API scaffolding to generate CRUD endpoints:
      Route::apiResource('users', \Sikessem\Http\Controllers\UserController::class);
      
    • Blade Components: Leverage Sikessem’s pre-built components (e.g., sikessem-card, sikessem-form) in Blade templates:
      <x-sikessem-card>
          {{ $slot }}
      </x-sikessem-card>
      
  4. Verify Setup:

    • Run php artisan sikessem:install (if the package includes an installer) or check the README for post-install commands.
    • Test a basic feature (e.g., login flow or API call) to confirm integration.

Where to Look First

  • Package Source: src/ for core classes (e.g., AuthServiceProvider, Http/Controllers/).
  • Config Files: config/sikessem.php for customization points.
  • Changelog: Releases to understand breaking changes in v0.10.0 (latest as of assessment).
  • Sikessem/Starter: Check if the package assumes sikessem/starter is installed (though not explicitly required in the composer.json).

Implementation Patterns

Usage Patterns

1. Modular Extensions

  • Pattern: Use Sikessem’s modular design to extend Laravel without monolithic overrides.
  • Example:
    // app/Providers/AppServiceProvider.php
    public function register()
    {
        if (! app()->bound('sikessem.auth')) {
            $this->app->register(\Sikessem\Auth\AuthServiceProvider::class);
        }
    }
    
  • Workflow:
    1. Identify a Laravel feature to replace (e.g., auth, validation).
    2. Register Sikessem’s provider in AppServiceProvider.
    3. Bind custom interfaces to Sikessem’s implementations in config/app.php:
      'bindings' => [
          App\Models\User::class => \Sikessem\Models\User::class,
      ],
      

2. API Scaffolding

  • Pattern: Generate API endpoints with minimal boilerplate.
  • Example:
    // routes/api.php
    Route::prefix('v1')->group(function () {
        Route::resource('posts', \Sikessem\Http\Controllers\PostController::class)
            ->middleware('auth:sikessem'); // Custom auth middleware
    });
    
  • Key Classes:
    • \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.

3. Blade Components

  • Pattern: Replace vanilla Blade with Sikessem’s component library.
  • Example:
    <!-- 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>
    
  • Customization:
    • Override default components by publishing views:
      php artisan vendor:publish --tag=sikessem.views
      
    • Extend components in resources/views/vendor/sikessem/.

4. Middleware Integration

  • Pattern: Replace or extend Laravel’s middleware.
  • Example:
    // app/Http/Kernel.php
    protected $routeMiddleware = [
        'sikessem.auth' => \Sikessem\Http\Middleware\Authenticate::class,
        'sikessem.throttle' => \Sikessem\Http\Middleware\ThrottleRequests::class,
    ];
    
  • Common Middleware:
    • Authenticate: Sikessem’s auth logic (e.g., JWT or session-based).
    • CheckPermission: Role-based access control (RBAC).

5. Event Listeners

  • Pattern: Hook into Sikessem’s events for custom logic.
  • Example:
    // app/Providers/EventServiceProvider.php
    protected $listen = [
        \Sikessem\Events\UserRegistered::class => [
            \App\Listeners\SendWelcomeEmail::class,
        ],
    ];
    
  • Key Events:
    • UserRegistered, UserLoggedIn, ApiRequestHandled.

Workflows

Feature Development Workflow

  1. Scaffold a Module:

    php artisan sikessem:make module Users --auth --api
    

    (Assuming the package includes a make:module command.)

  2. Customize the Module:

    • Extend controllers: app/Http/Controllers/UsersController.php.
    • Override views: resources/views/users/.
  3. Test Locally:

    • Use Sikessem’s test helpers (if available):
      use Sikessem\Testing\TestCase;
      
    • Run:
      php artisan test --filter=UserTest
      
  4. Deploy:

    • Ensure config/sikessem.php is synced across environments.
    • Run migrations (if the module includes them):
      php artisan migrate --path=vendor/sikessem/framework/database/migrations
      

CI/CD Integration

  • GitHub Actions: Add a workflow to test Sikessem + Laravel:
    # .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
    
  • Docker: Use a multi-stage build to avoid bloating production:
    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
    

Integration Tips

  1. Laravel Packages:

    • Conflict Resolution: If Sikessem overrides a package (e.g., Laravel Fortify), use priority binding:
      $this->app->bind(
          \Laravel\Fortify\Fortify::class,
          \Sikessem\Fortify\Fortify::class
      );
      
    • Dependency Management: Pin Sikessem to a specific version in composer.json to avoid surprises:
      "sikessem/framework": "^0.10.0"
      
  2. Database:

    • Migrations: Sikessem may include migrations in vendor/sikessem/framework/database/migrations. Run them last:
      php artisan migrate --path=database/migrations --path=vendor/sikessem/framework/database/migrations
      
    • Seeding: Use Sikessem’s seeders for initial data:
      php artisan db:seed --class=SikessemDatabaseSeeder
      
  3. Testing:

    • Mock Sikessem Services: Use Laravel’s mocking tools to isolate Sikessem dependencies:
      $this->mock(\Sikessem\Services\AuthService::class, function ($mock) {
          $mock->shouldReceive('checkPermission')->andReturn(true);
      });
      
    • Test Helpers: Leverage Sikessem’s test utilities (if documented):
      use Sikessem\Testing\CreatesUsers;
      use Sikessem\Testing\InteractsWithApi;
      
      class UserTest extends TestCase {
          use CreatesUsers, InteractsWithApi;
      }
      
  4. Performance:

    • Caching: Enable Sikessem’s cache drivers in config/cache.php.
    • Queue Workers: Use Sikessem’s queue listeners for async tasks:
      \Sikessem
      
Weaver

How can I help you explore Laravel packages today?

Conversation history is not saved when not logged in.
Prompt
Add packages to context
No packages found.
sayedenam/sayed-dashboard
milito/query-filter
apiboxsym/user-bundle
apiboxsym/health-check-bundle
jayeshmepani/jpl-moshier-ephemeris-php
elnasnato/laraliveui
labrodev/rest-sdk
sampaui/sampaui
babelqueue/php-sdk
facebook/capi-param-builder-php
babelqueue/symfony
hamzi/corewatch
minionfactory/raw-hydrator
hexters/coinpayment
rjcodes/rjcms
act-training/laravel-permissions-manager
alimarchal/laravel-chart-of-accounts
babenkoivan/elastic-scout-driver
mkwebdesign/filament-watchdog-v5
renatomarinho/laravel-page-speed