Download the PHP package andydefer/laravel-repository without Composer

On this page you can find all versions of the php package andydefer/laravel-repository. 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 laravel-repository

Laravel Repository

Une implémentation légère et typée du pattern Repository pour Laravel avec intégration Records et Eloquent.

Version PHP Version Laravel


Table des matières

  1. Installation
  2. Concepts fondamentaux
  3. Créer votre premier Repository
  4. Référence de l'API
  5. Méthodes à surcharger
  6. Bonnes pratiques
  7. Exemple complet avec filtres complexes
  8. Tests
  9. Génération de code avec Directive Forge
  10. Licence

Installation

Prérequis

Publier la configuration (Optionnel)


Concepts fondamentaux

Le Record

Un Record est un DTO typé qui sert d'interface entre votre code et le Repository.

Règles pour les Records :

Records de configuration

Le package fournit des Records standardisés pour les opérations :

FindByRecord

Propriété Type Défaut Description
filters AbstractRecord EmptyRecord Filtres de recherche
limit ?int null Limite de résultats
sortBy ?SortColumns null Colonnes de tri (supporte le multi-colonnes)
columns SelectColumns SelectColumns::all() Colonnes à sélectionner

PaginateRecord

Propriété Type Défaut Description
perPage int 15 Éléments par page
page int 1 Numéro de page
sortBy ?SortColumns null Colonnes de tri (supporte le multi-colonnes)
filters AbstractRecord EmptyRecord Filtres de recherche
columns SelectColumns SelectColumns::all() Colonnes à sélectionner

RepositoryInfoRecord

Objet Valeur SortColumns

Le package fournit un Value Object pour gérer le tri simple ou multi-colonnes :

Format de chaîne : colonne:direction|colonne:direction

Objet Valeur SelectColumns


Créer votre premier Repository

1. Créer le Modèle

2. Créer le Record

3. Créer le Record de filtres (Optionnel)

4. Créer le Repository

5. Utiliser le Repository


Référence de l'API

AbstractRepository

Méthode Paramètres Retour Description
info() - RepositoryInfoRecord Informations du repository
create(AbstractRecord $record) $record Model Créer un nouvel enregistrement
createRaw(array $data) $data Model Créer un enregistrement à partir de données brutes
find(int $id) $id Model|null Trouver par ID
findWithTrashed(int $id) $id Model|null Trouver par ID (inclus soft deleted)
findBy(FindByRecord $record) $record Collection<Model> Rechercher avec critères (supporte tri multiple)
update(int $id, AbstractRecord $record) $id, $record Model Mettre à jour (champs non-nuls uniquement)
updateRaw(int $id, array $data) $id, $data Model Mettre à jour avec données brutes
delete(int $id) $id bool Supprimer par ID (soft delete si disponible)
restore(int $id) $id bool Restaurer un soft deleted
forceDelete(int $id) $id bool Supprimer définitivement
count(?AbstractRecord $criteria) $criteria int Compter les enregistrements
exists(AbstractRecord $criteria) $criteria bool Vérifier l'existence
paginate(PaginateRecord $record) $record LengthAwarePaginator Résultats paginés (supporte tri multiple)
deleteBulk(AbstractRecord $criteria) $criteria int Suppression groupée (soft delete si disponible)
forceDeleteBulk(AbstractRecord $criteria) $criteria int Suppression définitive groupée

Méthodes à surcharger

Méthode Description
applyFilters(Builder $query, AbstractRecord $filters) Appliquer les filtres de recherche (doit être surchargée)

Exceptions

Exception Quand
ModelNotFoundException update() ou updateRaw() sur un ID inexistant
InvalidArgumentException Nom de colonne invalide dans SelectColumns ou SortColumns

Bonnes pratiques

1. Un Record par Entité

2. Record de filtres séparé pour les cas complexes

3. Utiliser des valeurs par défaut pour les champs optionnels

4. Implémenter applyFilters() proprement

5. Utiliser createRaw pour des données brutes

6. Trier avec SortColumns

7. Tester vos Repositories


Exemple complet avec filtres complexes et tri multiple


Support Soft Delete

Le repository détecte automatiquement si votre modèle utilise le trait SoftDeletes et adapte son comportement :

Méthode Comportement standard Avec SoftDeletes
delete() Suppression définitive Soft delete (deleted_at rempli)
find() Retourne tous les modèles Exclut les soft deleted
findWithTrashed() Comportement standard Inclut les soft deleted
restore() Non disponible Restaure un soft deleted
forceDelete() Non disponible Suppression définitive
deleteBulk() Suppression définitive groupée Soft delete groupé
forceDeleteBulk() Non disponible Suppression définitive groupée

Tests

Configuration des tests

Le package utilise SQLite en mémoire pour les tests d'intégration :

Exécuter les tests


Génération de code avec Directive Forge

Ce package s'intègre à directive-forge pour générer automatiquement les repositories, records et filtres.

Installer Directive Forge

Commandes disponibles

Exemple de génération


Licence

MIT © Andy Defer


All versions of laravel-repository with dependencies

PHP Build Version
Package Version
Requires php Version ^8.1
laravel/framework Version ^12.0|^13.0|^14.0|^15.0
andydefer/php-vo Version ^0.19.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 andydefer/laravel-repository contains the following files

Loading the files please wait ...