Download the PHP package andydefer/laravel-cluster without Composer

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

Laravel Cluster - Documentation Complète

Table des matières

  1. Installation
  2. Architecture du package
  3. Le moteur central : ClusterQuery
  4. Le service façade : ClusterService
  5. Structure des données : ClusterVO
  6. Eloquent Cast : ClusterCast
  7. La collection intelligente : ClusterVOCollection
  8. Filtrer des collections en mémoire
  9. Générer du SQL pour différents drivers
  10. Fonctions SQLite personnalisées
  11. Intégration avec Eloquent
  12. Les Macros Laravel
  13. Les fonctions SQL d'agrégation
  14. Les sous-conditions sur tableaux
  15. Les opérateurs EXISTS et NOT_EXISTS
  16. Les opérateurs LIKE et NOT_LIKE
  17. Les fonctions d'agrégation en mémoire
  18. Créer des fonctions personnalisées
  19. Parser et AST
  20. Référence des opérateurs
  21. Référence des méthodes de ClusterVOCollection
  22. Cas d'usage concrets
  23. Débogage et résolution des problèmes
  24. Performance et bonnes pratiques

1. Installation

1.1 Prérequis

1.2 Installation via Composer

1.3 Configuration

Le package s'enregistre automatiquement. Si vous utilisez une version de Laravel sans auto-discovery :

1.4 Structure du Service Provider

1.5 Injection de dépendances


2. Architecture du package

2.1 Flux de traitement d'une requête

2.2 Les composants clés


3. Le moteur central : ClusterQuery

ClusterQuery est le cœur du package. Il orchestre toutes les opérations.

3.1 Création

3.2 Parser une requête

3.3 Filtrer une collection en mémoire

3.4 Tester un cluster individuel

3.5 Générer du SQL

3.6 Appliquer à Eloquent


4. Le service façade : ClusterService

ClusterService est une façade qui délègue à ClusterQuery.

4.1 Création

4.2 Utilisation

4.3 Exemple dans un service Laravel


5. Structure des données : ClusterVO

ClusterVO est le conteneur qui aplatit automatiquement les données JSON pour un accès rapide.

5.1 Création d'un ClusterVO

5.2 Accès aux données

5.3 ArrayAccess

5.4 Création simplifiée avec ClusterVOProxy


6. Eloquent Cast : ClusterCast

6.1 Installation dans un modèle

6.2 Utilisation


7. La collection intelligente : ClusterVOCollection

7.1 Création

7.2 Filtres d'égalité

7.3 Filtres numériques

7.4 Filtres d'existence

7.5 Filtres sur chaînes

7.6 Filtres sur tableaux

7.7 Opérateurs logiques

7.8 Filtres personnalisés

7.9 Requêtes complètes avec whereQuery

7.10 Récupération des résultats


8. Filtrer des collections en mémoire

8.1 Exemple complet


9. Générer du SQL pour différents drivers

9.1 Drivers supportés

9.2 Conditions simples

9.3 Conditions avec AND/OR

9.4 Fonctions SQL

9.5 Sous-conditions


10. Fonctions SQLite personnalisées

10.1 Fonctions disponibles

Fonction Description Exemple
JSON_LENGTH Longueur d'un tableau JSON JSON_LENGTH(clusters, '$.addresses')
JSON_AVG Moyenne des valeurs numériques JSON_AVG(clusters, '$.scores')
JSON_SUM Somme des valeurs numériques JSON_SUM(clusters, '$.prices')
JSON_MIN Valeur minimale JSON_MIN(clusters, '$.scores')
JSON_MAX Valeur maximale JSON_MAX(clusters, '$.scores')

10.2 Utilisation


11. Intégration avec Eloquent

11.1 Utilisation de base

11.2 Conditions complexes

11.3 Combinaison avec Eloquent

11.4 Sous-conditions Eloquent

11.5 Fonctions SQL Eloquent


12. Les Macros Laravel

12.1 Macro sur Eloquent Builder

12.2 Macro sur Collection

12.3 Détection automatique du driver


13. Les fonctions SQL d'agrégation

13.1 Fonctions disponibles

Fonction Description Exemple
COUNT(path) Nombre d'éléments dans un tableau COUNT(addresses) > 2
SUM(path) Somme des valeurs numériques SUM(prices) > 500
AVG(path) Moyenne des valeurs numériques AVG(scores) >= 85
MIN(path) Valeur minimale MIN(scores) > 75
MAX(path) Valeur maximale MAX(scores) < 95
LENGTH(path) Longueur d'une chaîne LENGTH(name) > 5
JSON_LENGTH(path) Longueur d'un tableau JSON JSON_LENGTH(addresses) > 2

13.2 Utilisation en mémoire

13.3 Utilisation avec Eloquent

13.4 SQL généré par driver

Fonction SQLite MySQL PostgreSQL
COUNT json_array_length(clusters, '$.addresses') JSON_LENGTH(clusters, '$.addresses') jsonb_array_length(clusters->'addresses')
SUM (SELECT SUM(json_extract(value, '$')) FROM json_each(clusters, '$.prices')) (SELECT SUM(JSON_EXTRACT(value, '$')) FROM JSON_TABLE(...)) (SELECT SUM((value->>'$')::numeric) FROM json_array_elements(...))
AVG (SELECT AVG(json_extract(value, '$')) FROM json_each(clusters, '$.scores')) (SELECT AVG(JSON_EXTRACT(value, '$')) FROM JSON_TABLE(...)) (SELECT AVG((value->>'$')::numeric) FROM json_array_elements(...))
MIN (SELECT MIN(json_extract(value, '$')) FROM json_each(clusters, '$.scores')) (SELECT MIN(JSON_EXTRACT(value, '$')) FROM JSON_TABLE(...)) (SELECT MIN((value->>'$')::numeric) FROM json_array_elements(...))
MAX (SELECT MAX(json_extract(value, '$')) FROM json_each(clusters, '$.scores')) (SELECT MAX(JSON_EXTRACT(value, '$')) FROM JSON_TABLE(...)) (SELECT MAX((value->>'$')::numeric) FROM json_array_elements(...))
LENGTH LENGTH(json_extract(clusters, '$.name')) LENGTH(JSON_EXTRACT(clusters, '$.name')) LENGTH(clusters->>'name')
JSON_LENGTH json_array_length(clusters, '$.addresses') JSON_LENGTH(clusters, '$.addresses') jsonb_array_length(clusters->'addresses')

14. Les sous-conditions sur tableaux

14.1 Syntaxe

14.2 Exemples en mémoire

14.3 Exemples avec Eloquent


15. Les opérateurs EXISTS et NOT_EXISTS

15.1 EXISTS (*)

15.2 NOT_EXISTS (#)

15.3 Utilisation avec Eloquent


16. Les opérateurs LIKE et NOT_LIKE

16.1 LIKE (=~)

16.2 NOT_LIKE (!~)

16.3 Utilisation avec Eloquent


17. Les fonctions d'agrégation en mémoire

17.1 Présentation des fonctions

Les fonctions d'agrégation en mémoire permettent d'effectuer des calculs sur les données des clusters sans générer de SQL. Elles sont utilisées avec les méthodes whereAggregate(), matchesAggregate() et getAggregateValue() de ClusterVOCollection.

17.2 Liste des fonctions d'agrégation

Fonction Description Signature Retourne
COUNT Compte les éléments d'un tableau ou les caractères d'une chaîne COUNT(path) int
AVG Calcule la moyenne des valeurs numériques AVG(path) float
SUM Calcule la somme des valeurs numériques SUM(path) float
MIN Trouve la valeur numérique minimale MIN(path) float
MAX Trouve la valeur numérique maximale MAX(path) float
LENGTH Calcule la longueur d'une chaîne ou le nombre d'éléments LENGTH(path) int
EXISTS Vérifie qu'un chemin existe et n'est pas vide EXISTS(path) bool
IS_EMPTY Détermine si une valeur est vide IS_EMPTY(path) bool
HAS Recherche une valeur dans un tableau HAS(path, value) ou HAS(path, key, value) bool
ALL Vérifie que tous les éléments satisfont une condition ALL(path, key, expectedValue) bool
MATCHES Recherche une valeur correspondant à une regex MATCHES(path, regex) ou MATCHES(path, key, regex) bool
GROUP Groupe des expressions pour la logique booléenne GROUP({expr1} & {expr2}) bool

17.3 Utilisation de whereAggregate

17.4 Utilisation de whereAggregateDirect

17.5 Évaluation sur un cluster spécifique

17.6 Validation d'expressions

17.7 Exemple complet avec toutes les fonctions


18. Créer des fonctions personnalisées

18.1 Fonction d'agrégation personnalisée

18.2 Enregistrement de la fonction

18.3 Fonction SQL personnalisée

18.4 Enregistrement SQL personnalisé


19. Parser et AST

19.1 Structure de l'AST

19.2 Manipulation de l'AST

19.3 Génération SQL depuis l'AST

19.4 Cache du Parser


20. Référence des opérateurs

20.1 Opérateurs de comparaison

Opérateur Description Exemple
= Égalité status=active
!= Différent status!=inactive
< Inférieur age<18
> Supérieur age>18
<= Inférieur ou égal age<=18
>= Supérieur ou égal age>=18
=~ LIKE (insensible à la casse) name=~John%
!~ NOT LIKE (insensible à la casse) name!~John%

20.2 Opérateurs logiques

Opérateur Description Exemple
& ou AND ET logique status=active & role=admin
\| ou OR OU logique status=active | role=admin
! ou NOT Négation !deleted

20.3 Opérateurs spéciaux

Opérateur Description Exemple
* EXISTS - La clé existe *email
# NOT_EXISTS - La clé est absente #deleted_at

20.4 Parenthèses


21. Référence des méthodes de ClusterVOCollection

21.1 Filtres d'égalité

21.2 Filtres d'existence

21.3 Filtres numériques

21.4 Filtres sur chaînes

21.5 Filtres sur tableaux

21.6 Filtres personnalisés

21.7 Requêtes textuelles

21.8 Agrégations en mémoire

21.9 Récupération


22. Cas d'usage concrets

22.1 Filtrage de clients B2B

22.2 Filtrage de produits e-commerce

22.3 Filtrage d'utilisateurs avec compétences

22.4 API REST avec filtrage dynamique

22.5 Filtrage en mémoire pour export


23. Débogage et résolution des problèmes

23.1 Vérifier la syntaxe d'une requête

23.2 Valider une expression d'agrégation

23.3 Afficher le SQL généré

23.4 Tester une requête sur un cluster spécifique

23.5 Problèmes courants

Problème Cause Solution
Syntax error Requête mal formée Vérifier les parenthèses et les opérateurs
Valeurs entre guillemets Guillemets dans la requête Supprimer les guillemets : status=active
Fonction inconnue Fonction non enregistrée Ajouter la fonction au registre
Tableau vide attendu whereArrayEmpty sur tableau non vide Vérifier la structure du tableau
Driver non supporté Driver inconnu Utiliser MySQL, PostgreSQL ou SQLite
Résultat inattendu Comportement de l'opérateur Vérifier la casse des valeurs

24. Performance et bonnes pratiques

24.1 Performance en mémoire

24.2 Performance en base de données

24.3 Optimisation des requêtes

24.4 Bonnes pratiques

24.5 Conservation de la mémoire


25. Licence

MIT © Andy Defer


All versions of laravel-cluster with dependencies

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

Loading the files please wait ...