Download the PHP package mawena/maravel without Composer

On this page you can find all versions of the php package mawena/maravel. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.

FAQ

After the download, you have to make one include require_once('vendor/autoload.php');. After that you have to import the classes with use statements.

Example:
If you use only one package a project is not needed. But if you use more then one package, without a project it is not possible to import the classes with use statements.

In general, it is recommended to use always a project to download your libraries. In an application normally there is more than one library needed.
Some PHP packages are not free to download and because of that hosted in private repositories. In this case some credentials are needed to access such packages. Please use the auth.json textarea to insert credentials, if a package is coming from a private repository. You can look here for more information.

  • Some hosting areas are not accessible by a terminal or SSH. Then it is not possible to use Composer.
  • To use Composer is sometimes complicated. Especially for beginners.
  • Composer needs much resources. Sometimes they are not available on a simple webspace.
  • If you are using private repositories you don't need to share your credentials. You can set up everything on our site and then you provide a simple download link to your team member.
  • Simplify your Composer build process. Use our own command line tool to download the vendor folder as binary. This makes your build process faster and you don't need to expose your credentials for private repositories.
Please rate this library. Is it a good library?

Informations about the package maravel

Maravel

Version PHP Laravel License

Maravel est une librairie Laravel avancée qui accélère le développement d'API REST en fournissant un contrôleur générique avec CRUD complet, un système de permissions sophistiqué, des modèles enrichis avec formatage automatique, et des commandes Artisan pour générer du code prêt à l'emploi.

Table des matières


Fonctionnalités principales

🚀 APIController générique

🔐 Système de permissions avancé

📦 ModelBase enrichi

🛠️ Commandes Artisan

⚡ Traits réutilisables


Prérequis


Installation

Installez la librairie via Composer :

Le service provider sera automatiquement enregistré grâce à l'auto-discovery de Laravel.

Installation automatique

Une fois la librairie installée, lancez la commande d'installation pour configurer automatiquement votre projet :

Cette commande effectue automatiquement les actions suivantes :

✨ Fusion intelligente des fichiers existants

Nouvelle fonctionnalité (v2.6.0) : La commande maravel:install utilise désormais un système de fusion intelligente pour préserver vos personnalisations :

Exemple : Si vous avez déjà ajouté des méthodes personnalisées dans UserController, elles seront conservées lors de l'exécution de maravel:install, et les méthodes de la librairie (comme updatePassword()) seront ajoutées ou mises à jour.

Le contrôleur AuthController créé inclut les méthodes suivantes :

Le modèle User est automatiquement configuré avec :

Routes configurées automatiquement dans routes/api.php :

Endpoints disponibles :

Migrations créées :

  1. xxxx_xx_xx_xxxxxx_add_profile_to_users_table.php

  2. xxxx_xx_xx_xxxxxx_add_account_status_to_users_table.php (v2.5.3+)

Système de permissions (v2.7.0+) : Le modèle User est configuré avec un système de permissions basé sur les profils via $enumCasts :

Vous pouvez étendre les permissions en modifiant le $enumCasts correspondant dans app/Models/User.php. Les ability_rules sont maintenant générées automatiquement via le système de casts unifié.

Gestion du statut des comptes (v2.5.3+) :

Le middleware AccountStatusMiddleware (alias : account.status) vérifie automatiquement :

Ce middleware est automatiquement appliqué aux routes CRUD des utilisateurs, mais pas à la route de changement de mot de passe, permettant ainsi aux utilisateurs de changer leur mot de passe même si password_change_required est à true.

Publication manuelle de la configuration (optionnel)

Si vous souhaitez uniquement publier le fichier de configuration sans exécuter l'installation complète :

Cela créera le fichier config/advanced-api-controller.php.


Configuration

Le fichier de configuration config/advanced-api-controller.php vous permet de personnaliser :

Defaults (Paramètres par défaut)

Filters (Configuration des filtres)

Models (Configuration des modèles)

Permissions (Configuration des permissions)


Démarrage rapide

1. Créer un contrôleur

2. Définir le modèle et la validation

3. Créer les routes

4. C'est prêt!

Votre API est maintenant opérationnelle avec :


Utilisation avancée

APIController

Le contrôleur de base fournit toutes les méthodes CRUD et de nombreuses options de personnalisation.

Propriétés disponibles

Méthodes disponibles

Gestion des uploads de gros fichiers

L'APIController inclut des méthodes pour gérer l'upload de fichiers volumineux par chunks (morceaux) :

uploadChunk()

Permet de télécharger un fichier volumineux en plusieurs morceaux :

mergeChunks()

Fusionne tous les morceaux uploadés en un seul fichier :

Fonctionnalités :

Sécurité :


ModelBase

Utilisez ModelBase comme classe parente pour vos modèles afin de bénéficier du formatage automatique.

Structure de $enumCasts (v2.6.8+)

Depuis la version 2.6.8, la structure de $enumCasts a été améliorée pour offrir plus de flexibilité. Chaque élément est maintenant un tableau associatif avec les clés suivantes :

Avantages de cette structure :

Exemple de résultat JSON :

Méthodes dynamiques

Ajoutez des casts à la volée :

Attributs automatiques

Les attributs suivants sont automatiquement ajoutés :

Exemple avec big_integer_casts :

Exemple avec booleanCasts (v2.6.9+) :

Note : Depuis la version 2.6.9, les booléens sont automatiquement convertis en entiers (0 ou 1) pour améliorer la compatibilité avec les APIs et bases de données qui attendent des valeurs numériques.


ModelTrait

Le coeur du système de formatage. Ce trait est utilisé par ModelBase et AuthenticatableBase.

Fonctionnalités du trait

Méthodes disponibles

Détails des casts

big_integer_casts

Convertit les grands entiers en int et ajoute une version formatée avec séparateurs de milliers :

Utilisation directe du trait

Vous pouvez utiliser ModelTrait directement sans hériter de ModelBase :


AuthenticatableBase

Pour les modèles nécessitant l'authentification (comme User), Maravel fournit AuthenticatableBase.

Créer un modèle User

Exemple de modèle User

Avantages d'AuthenticatableBase

Architecture

Les deux classes utilisent le même trait ModelTrait, évitant ainsi la duplication de code.


Gestion des utilisateurs et sécurité des comptes

Maravel inclut un système complet de gestion des utilisateurs avec contrôle du statut des comptes (v2.5.3+).

UserController

Le contrôleur UserController est automatiquement créé lors de l'installation et inclut :

Méthode updatePassword :

Cette méthode :

AccountStatusMiddleware

Le middleware AccountStatusMiddleware (alias : account.status) vérifie le statut du compte utilisateur avant d'autoriser l'accès aux routes protégées.

Vérifications effectuées :

  1. Compte désactivé (activated = false) :

    Code HTTP : 403

  2. Changement de mot de passe requis (password_change_required = true) :

    Code HTTP : 403

Important : Le middleware n'est PAS appliqué à la route /users/update-password, permettant aux utilisateurs de changer leur mot de passe même si password_change_required = true.

Utilisation du middleware

Le middleware est automatiquement configuré dans bootstrap/app.php :

Appliquez-le sur vos routes :

Scénarios d'utilisation

1. Désactiver un utilisateur :

2. Forcer le changement de mot de passe :

3. Réactiver un compte :


BasePolicy

Créez des policies avancées avec système de permissions.

Créer une policy

Exemple de policy

Enregistrer la policy

Dans AuthServiceProvider.php :


Traits disponibles

CustomResponseTrait

Formatage standardisé des réponses JSON :

ControllerHelperTrait

Méthodes utilitaires pour les contrôleurs :

Reducers personnalisés

Le trait fournit également reduceCollection() qui permet d'appliquer des transformations personnalisées sur une collection après une requête SQL :

Les reducers sont automatiquement appliqués par l'APIController après l'exécution de la requête SQL, permettant des transformations complexes sans surcharger la requête.

PermissionCheckerTrait

Vérification simplifiée des permissions :


Commandes Artisan

Maravel fournit plusieurs commandes personnalisées qui coexistent avec les commandes Laravel standard. Les commandes par défaut (make:controller, make:policy) restent disponibles et fonctionnelles.

maravel:install

Installe et configure automatiquement Maravel dans votre projet Laravel :

Ce qui est exécuté automatiquement :

Avantages :

Recommandation : Lancez cette commande immédiatement après composer require mawena/maravel pour configurer votre projet en une seule commande. Vous pouvez aussi la relancer après une mise à jour de la librairie pour bénéficier des nouvelles fonctionnalités sans perdre vos personnalisations.

make:maravel.controller

Génère un contrôleur API complet avec APIController :

Ce qui est généré :

Emplacement : App\Http\Controllers\API\ProductController.php

make:maravel.model

Génère un modèle avec ModelBase ou AuthenticatableBase :

Ce qui est généré :

Emplacement : App\Models\Product.php

Options disponibles :

Exemples :

make:maravel.policy

Génère une policy avancée avec BasePolicy :

Ce qui est généré :

Emplacement : App\Policies\ProductPolicy.php

Différence avec les commandes Laravel standard

Commande Description
maravel:install Commande unique Maravel - installe et configure automatiquement Maravel (API + AuthController + config)
make:controller Commande Laravel standard - génère un contrôleur vide
make:maravel.controller Commande Maravel - génère un contrôleur API complet avec APIController
make:model Commande Laravel standard - génère un modèle basique
make:maravel.model Commande Maravel - génère un modèle avec ModelBase et formatage automatique
make:policy Commande Laravel standard - génère une policy basique
make:maravel.policy Commande Maravel - génère une policy avancée avec BasePolicy

Exemples d'utilisation complète


Filtres avancés

L'APIController supporte plusieurs types de filtres via l'URL :

Filtres basiques

Filtrer par égalité :

Filtres min/max

Filtrer par plage de valeurs :

Filtres IN/NOT IN

Filtrer par liste de valeurs :

Recherche textuelle

Rechercher dans plusieurs champs :

Les champs de recherche sont définis dans $indexSearchFieldList.

Chargement des relations

Charger des relations Eloquent :

Relations imbriquées :

Tri

Trier les résultats :

Pagination

Contrôler la pagination :

Reducers personnalisés

Appliquer des transformations personnalisées après la requête :

Les reducers sont définis dans le modèle (voir section ControllerHelperTrait).

Combinaison de filtres

Combiner plusieurs filtres :


Système de permissions

Maravel utilise un système de permissions flexible basé sur les profils et les règles d'abilités.

Structure des ability_rules

Les utilisateurs doivent avoir un attribut ability_rules qui est un tableau de règles :

Actions disponibles

Profils utilisateur

L'attribut profile détermine le niveau d'accès :

Vérification des permissions

Dans les contrôleurs

Dans les policies

Dans les vues Blade


Hooks et callbacks

L'APIController propose de nombreux hooks pour personnaliser le comportement.

Hooks de création

Hooks de mise à jour

Hooks de suppression

Filtre manuel sur index


Exemples complets

Exemple 1 : API de blog

Modèle

Contrôleur

Routes

Utilisation


Exemple 2 : E-commerce avec permissions

Modèle Product

Policy

Contrôleur

Configuration des ability_rules


Tests

La librairie inclut des tests PHPUnit pour assurer la qualité du code.

Exécuter les tests

Tests disponibles


Changelog

Consultez le fichier CHANGELOG.md pour voir l'historique complet des modifications.


Contribution

Les contributions sont les bienvenues! Voici comment contribuer :

  1. Fork le projet
  2. Créez votre branche de fonctionnalité (git checkout -b feature/AmazingFeature)
  3. Committez vos changements (git commit -m 'Add some AmazingFeature')
  4. Push vers la branche (git push origin feature/AmazingFeature)
  5. Ouvrez une Pull Request

Guidelines


License

Ce projet est sous licence MIT. Consultez le fichier LICENSE pour plus de détails.

Copyright (c) 2024 Charles GAMLIGO


Auteur

Charles GAMLIGO (Mawena)


Support


Remerciements

Merci à tous les contributeurs qui ont participé au développement de cette librairie.


Maravel - Accélérez votre développement d'API Laravel avec élégance et puissance.


All versions of maravel with dependencies

PHP Build Version
Package Version
Requires php Version ^8.1|^8.2|^8.3|^8.4
laravel/framework Version ^10.0|^11.0|^12.0|^13.0
Composer command for our command line client (download client) This client runs in each environment. You don't need a specific PHP version etc. The first 20 API calls are free. Standard composer command

The package mawena/maravel contains the following files

Loading the files please wait ...