juzaweb / core
Juzaweb CMS Core
Installs: 1 145
Dependents: 14
Suggesters: 0
Security: 0
Stars: 1
Watchers: 1
Forks: 0
Open Issues: 0
Language:JavaScript
pkg:composer/juzaweb/core
Requires
- php: ^8.2
- astrotomic/laravel-translatable: ^11.13
- darkaonline/l5-swagger: ^8.6
- doctrine/dbal: ^4.2
- hassankhan/config: ^2.2
- intervention/image: ^3.11
- ip2location/ip2location-php: ^9.7
- juzaweb/hooks: ^2.0.3
- juzaweb/html-dom: ^1.0
- juzaweb/laravel-query-cache: ^1.0
- juzaweb/laravel-translation-loader: ^2.0
- laravel/slack-notification-channel: ^3.7
- laravel/socialite: ^5.5
- maatwebsite/excel: ^3.1
- pion/laravel-chunk-upload: ^1.5
- spatie/image-optimizer: ^1.4
- spatie/laravel-activitylog: ^4.10
- spatie/laravel-analytics: ^5.6
- spatie/laravel-sitemap: ^7.3
- yajra/laravel-datatables: ^11.0
Requires (Dev)
- laravel/pint: ^1.13
- orchestra/testbench: ^9.14
- phpunit/phpunit: ^11.0.1
README
Juzaweb Core is the kernel of the Juzaweb CMS ecosystem, providing the essential building blocks for modular web applications. It handles the core logic for Modules, Themes, Hooks, Settings, and User Management, following a robust Facade-Contract-Repository architecture.
Requirements
- PHP >= 8.2
- Laravel >= 11.0
Documentation
Features
- Modular Architecture: Built-in support for modular development, allowing you to organize your application into independent modules.
- Theme System: Powerful theme management system with support for theme settings, widgets, and templates.
- Hook System: Extensible hook system (actions and filters) powered by
juzaweb/hooksfor plugin-like extensibility. - User Management: Comprehensive role-based access control (RBAC) with user roles and permissions.
- Media Manager: Integrated file manager for handling uploads and media assets.
- Settings API: Global settings management with support for different storage drivers and caching.
- Social Login: Built-in support for social authentication (Google, Facebook, Twitter, Github, Instagram).
- Security: Secure by default with features like ReCaptcha validation and strict permission checks.
Installation
Install the package via Composer:
composer require juzaweb/core
Publish the configuration files:
php artisan vendor:publish --tag=core-config
This will publish the following config files to your config/ directory:
core.phpmedia.phpmodules.phpthemes.phptranslator.php
Publish the assets:
php artisan vendor:publish --tag=core-assets
Architecture
This package follows a strict Facade -> Contract -> Repository pattern for its core components. This ensures loose coupling and makes the system highly testable and extensible.
Key components include:
GlobalData: Central registry for global application data.Setting: Manages global settings.Theme: Handles theme registration and management.Module: Manages application modules.Hook: Manages actions and filters.
Most functionalities are exposed via Facades (e.g., Juzaweb\Modules\Core\Facades\Theme) which resolve to their respective Contracts and Repositories.
Development
Testing
Run the test suite:
composer test
Run tests with coverage:
composer test-coverage
Code Formatting
Format code using Laravel Pint:
composer format
Check code formatting without making changes:
composer format -- --test
Contributing
Contributions are welcome! Please see CONTRIBUTING.md for details.
License
The Juzaweb Core package is open-sourced software licensed under the GPL-2.0 license.