Download the PHP package nabysyphpapi/xnabysygs without Composer

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

NAbySyGS - Framework PHP avec ORM Intégré

Latest Version Total Downloads License PHP Version

NAbySyGS est un framework PHP moderne conçu par PAM & MCP pour faciliter la création rapide d'API REST pour vos applications. Il intègre un ORM personnalisé avec création automatique de tables et champs, un système d'authentification JWT, une architecture modulaire, et un double système de routage (Action classique + URL Laravel-style).


✨ Fonctionnalités


📋 Prérequis


📦 Installation

Via Composer

Via la CLI NAbySyGS (koro / nsy)

Voir la documentation de la CLI pour le détail des commandes disponibles.

🎛️ Setup Initial Automatique

Lors de la première installation (via composer require ou via n'importe quelle commande koro), NAbySyGS ouvre automatiquement setup.html dans votre navigateur par défaut.

Cette interface web vous permet de configurer :

Une fois le formulaire validé, appinfos.php est généré automatiquement à la racine de votre projet. Le setup ne s'ouvrira plus automatiquement par la suite.

⚠️ Toute commande koro (sauf koro version) déclenche cette vérification et ouvre le setup si le projet n'est pas encore configuré.

Structure Générée


🚀 Démarrage Rapide

1. Configuration Initiale

Créez un fichier index.php à la racine :

En pratique, appinfos.php généré par le setup contient déjà cet appel N::Init() configuré pour votre environnement.

2. Déclarer vos Modules — db_structure.php

Tous les modules (catégories, ORM, routes URL) sont déclarés dans db_structure.php, inclus automatiquement dans appinfos.php. Ce fichier peut être généré et enrichi via la CLI ou manuellement.

Vous pouvez également avoir plusieurs fichiers de structure en les déclarant via la CLI avec --struct :

3. Créer Votre Premier Module

Cela génère automatiquement :

4. Utiliser l'ORM


🌐 Double Système de Routage

NAbySyGS supporte deux modes de routage simultanément. Vous pouvez utiliser l'un, l'autre, ou les deux dans le même projet.

Mode 1 — Routage par Action (classique)

Le routage historique de NAbySyGS. Chaque requête transmet un paramètre action ou Action.

Mode 2 — Routage URL Laravel-style

Routage expressif basé sur l'URL, avec paramètres dynamiques, contraintes et middlewares. Déclaré via GenerateUrlRouteController().

Déclaration d'un contrôleur de route

Définir des routes dans le contrôleur

Récupérer les paramètres d'URL dans l'action

Middlewares

Les middlewares sont appliqués automatiquement par défaut (authentification JWT, CORS, etc.). Le développeur peut les personnaliser :

Coexistence des deux modes

Les deux modes fonctionnent simultanément dans le même projet. Le framework détecte automatiquement le type de requête et dispatch vers le bon handler.


📋 Documentation des Routes — /api/describe

NAbySyGS génère automatiquement une documentation interactive de vos routes URL accessible via un endpoint dédié, sans aucune configuration supplémentaire.

Accès

L'endpoint est disponible dès le premier lancement, même si db_structure.php est vide. Les routes internes du framework y figurent toujours à titre de référence.

La documentation est pour l'instant limitée aux routes déclarées via le routage URL (GenerateUrlRouteController).

Authentification

L'accès à /api/describe (JSON ou HTML) est protégé par les credentials de la table utilisateur créée automatiquement lors du setup initial. Des accès supplémentaires peuvent être ajoutés directement dans cette table.

Version Web Interactive (?HTML=1)

La page web propose :

Les annotations (titres, commentaires) ne sont pas stockées côté serveur. C'est l'utilisateur qui gère ses exports/imports, garantissant une totale portabilité sans aucune dépendance serveur.

Exemple — Réponse JSON

Avantage par rapport aux autres solutions

Doctrine et Eloquent ne fournissent aucune documentation d'API intégrée — il faut intégrer des outils tiers comme Swagger/OpenAPI, configurer des annotations et maintenir un fichier YAML séparé. Avec NAbySyGS, la documentation est vivante, toujours à jour et disponible immédiatement, avec une interface web prête à l'emploi et un système d'export/import sans infrastructure supplémentaire.


📖 ORM — Opérations CRUD

Créer

Lire

Mettre à Jour

Supprimer

Conversions de Données

Clonage d'Enregistrements

Jointures entre Entités

NAbySyGS propose une API de jointure fluente et chainable directement sur les classes ORM, sans écrire une seule ligne de SQL. Là où Doctrine exige des annotations de relation et Eloquent impose de déclarer belongsTo / hasMany dans chaque Model, NAbySyGS permet de joindre n'importe quelles deux entités à la volée, même créées dynamiquement.

Signature de JoinTable() :

La méthode retourne $this, permettant de chaîner plusieurs jointures successives :

Comparaison jointures avec autres ORM

Feature NAbySyGS Doctrine Eloquent RedBeanPHP
Jointure sans config préalable ✅ À la volée ❌ Annotations requises ❌ Relations à déclarer ⚠️ Partiel
Chainable ✅ Oui ✅ DQL ✅ Oui ❌ Non
Tables dynamiques joignables ✅ Oui ❌ Non ❌ Non ❌ Non
Sans écrire de SQL ✅ Oui ⚠️ DQL nécessaire ✅ Oui ⚠️ Partiel

Aucune relation ne doit être déclarée à l'avance : la jointure s'exprime directement là où vous en avez besoin, ce qui est particulièrement puissant sur des tables créées dynamiquement.


🔐 Authentification JWT

Connexion

Protection des Routes

Configuration Session


🎭 Système d'Événements Unique

NAbySyGS intègre un système d'événements innovant qui se démarque des autres ORM PHP par sa simplicité et sa puissance.

Comparaison des Événements avec Autres ORM

Feature NAbySyGS Doctrine Eloquent RedBeanPHP
Events automatiques ✅ Sur toutes les tables ⚠️ Si configuré ⚠️ Si Model défini ❌ Non
Observer centralisé ✅ Multi-tables ❌ Un par Entity ⚠️ Un par Model ❌ Non
Tables dynamiques ✅ Événements auto ❌ Non ❌ Non ❌ Non
Référence modifiable ✅ Oui (&$EventArg) ✅ Oui ✅ Oui —
Événements custom ✅ RaiseEvent() ✅ EventManager ⚠️ Limité ❌ Non
Cross-table events ✅ Un observer pour tout ⚠️ Config complexe ⚠️ Difficile ❌ Non

Avantages Clés du Système d'Événements NAbySyGS

1. Événements Automatiques sur TOUTES les Tables

2. Observer Centralisé Multi-Tables

Autres ORM : Nécessitent un Observer/Subscriber par entité.

3. Support des Tables Créées Dynamiquement

Aucun autre ORM ne permet cela ! Doctrine et Eloquent nécessitent de créer Entity/Model, configurer les événements, puis redéployer.

4. Observateur Global "Catch-All"

Impossible avec cette simplicité sur Doctrine ou Eloquent !

5. Événements avec Contexte Complet et Modifiable

Utilisations pratiques : validation automatique, enrichissement de données, normalisation, calculs automatiques, audit trail complet.

Créer un Observateur

1. Créer la Classe Observateur

Créez un fichier dans gs/votre_module/xObservVotreModule/xObservVotreModule.class.php :

2. Activer l'Observateur

L'observateur est chargé automatiquement au démarrage de NAbySyGS. Assurez-vous que votre classe :

Exemple Complet : Système de Notifications pour les Commandes

Événements Disponibles

Le framework déclenche automatiquement :

Où {CLASS} est le nom de votre table (ex : xProduit_ADD, xClient_EDIT).

Cas d'Usage Pratiques

1. Synchronisation Automatique avec API Externe

2. Alertes Automatiques de Stock Faible

3. Mise à Jour Automatique de Statistiques

Déclencher Manuellement un Événement

Désactiver un Observateur

Debug des Événements

Bonnes Pratiques avec les Événements

  1. Nommage cohérent : Utilisez {Classe}_{Action} pour les événements
  2. Logging : Toujours logger les actions importantes
  3. Performances : Évitez les traitements lourds dans les observateurs
  4. Async : Pour les traitements longs, utilisez des queues (Beanstalkd, RabbitMQ)
  5. Test : Créez des observateurs de test pour vérifier le déclenchement
  6. Documentation : Documentez les événements disponibles dans votre module

🛠️ Modules Intégrés

Module Boutique

Module Stock

Module Facture


📚 Exemples Complets

API Gestion de Produits

Appel API (curl)


🔧 Configuration Avancée

Mode Debug

Ignorer Certaines Requêtes dans les Logs

Personnalisation du Dossier Racine


🔄 Mise à Jour de la Structure via db update

La CLI NAbySyGS fournit une commande db update (alias koro db u) qui appelle l'API du projet pour synchroniser la structure de base de données avec db_structure.php.

Cette commande est appelée automatiquement après chaque koro create. Elle peut aussi être invoquée manuellement à tout moment pour forcer la synchronisation.

L'URL de l'API est lue automatiquement depuis __SERVER_URL__ dans appinfos.php. Vous pouvez la surcharger avec --url.


⚖️ Comparaison avec d'autres ORM PHP

✅ Avantages de NAbySyGS

1. Simplicité et Rapidité de Développement

2. Auto-création de Tables et Champs

3. Jointures à la Volée

4. API REST + Documentation Intégrées

5. Pas de Dépendances Complexes

❌ Limitations

Fonctionnalité NAbySyGS Doctrine Eloquent
Relations complexes (Many-to-Many) ⚠️ Manuel ✅ Automatique ✅ Automatique
Lazy Loading ❌ Non ✅ Oui ✅ Oui
Query Builder avancé ⚠️ Basique ✅ DQL ✅ Fluent
Transactions complexes ⚠️ Manuel ✅ UnitOfWork ✅ Oui
Caching sophistiqué ❌ Non ✅ 2nd level cache ✅ Query cache

📊 Tableau Récapitulatif

Critère NAbySyGS Doctrine Eloquent RedBeanPHP
Facilité ⭐⭐⭐⭐⭐ ⭐⭐ ⭐⭐⭐⭐ ⭐⭐⭐⭐⭐
Performance ⭐⭐⭐ ⭐⭐⭐⭐⭐ ⭐⭐⭐⭐ ⭐⭐⭐
Fonctionnalités ⭐⭐⭐ ⭐⭐⭐⭐⭐ ⭐⭐⭐⭐ ⭐⭐
Auto-création tables ⭐⭐⭐⭐⭐ ❌ ❌ ⭐⭐⭐⭐⭐
Jointures sans config ⭐⭐⭐⭐⭐ ❌ ❌ ⚠️
Routage URL intégré ⭐⭐⭐⭐⭐ ❌ ⭐⭐⭐ ❌
Double routage ⭐⭐⭐⭐⭐ ❌ ❌ ❌
API Intégrée ⭐⭐⭐⭐⭐ ❌ ⭐⭐⭐ ❌
Doc routes intégrée ⭐⭐⭐⭐⭐ ❌ ❌ ❌
Setup HTML auto ⭐⭐⭐⭐⭐ ❌ ❌ ❌
Communauté ⭐⭐ ⭐⭐⭐⭐⭐ ⭐⭐⭐⭐⭐ ⭐⭐⭐
Setup ⭐⭐⭐⭐⭐ ⭐⭐ ⭐⭐⭐ ⭐⭐⭐⭐

🎯 Quand Utiliser NAbySyGS ?

  1. Prototypes et MVPs Rapides — Lancer une API en quelques heures, tester des idées rapidement
  2. Petites et Moyennes Applications — < 200 tables, < 500 000 enregistrements/table, équipe de 1-50 développeurs
  3. Applications Métier Internes — ERP légers, stocks, factures, clients, outils administratifs
  4. Projets Sans Infrastructure DevOps — Hébergement mutualisé, pas de CLI disponible, environnement simple
  5. Développeurs Débutants en ORM — Courbe d'apprentissage douce, résultats immédiats

🔄 Migration vers NAbySyGS

Depuis Eloquent (Laravel)

Depuis Doctrine


📝 Structure de Réponse API

Succès

Erreur


🎯 Bonnes Pratiques

  1. Toujours utiliser ValideUser() pour protéger vos endpoints sensibles
  2. Nommer vos actions en MAJUSCULES avec préfixe module : PRODUIT_CREATE
  3. Utiliser xNotification pour les réponses réussies, xErreur pour les erreurs
  4. Activer le debug uniquement en développement
  5. Versionner votre fichier appinfos.php pour la configuration personnalisée
  6. Créer des observateurs pour automatiser les tâches répétitives
  7. Logger les événements importants pour faciliter le débogage
  8. Utiliser koro db update après toute modification manuelle de db_structure.php
  9. Consulter /api/describe pour vérifier que toutes vos routes URL sont bien enregistrées

🤝 Contribution

Les contributions sont les bienvenues ! N'hésitez pas à :

  1. Proposer des suggestions via les Issues
  2. Créer une branche (git checkout -b feature/amelioration)
  3. Committer vos changements (git commit -m 'Ajout fonctionnalité')
  4. Pusher sur la branche (git push origin feature/amelioration)
  5. Ouvrir une Pull Request

📄 Licence

MIT License — voir le fichier LICENSE pour plus de détails.


👨‍💻 Auteur

Paul Isidore A. NIAMIE


🙏 Remerciements

Développé par Paul & Aïcha Machinerie (PAM) et Micro Computer Programme (MCP).


⭐ Si ce projet vous est utile, n'hésitez pas à lui donner une étoile sur GitHub !


All versions of xnabysygs with dependencies

PHP Build Version
Package Version
Requires php Version >=8.1.0
composer-plugin-api Version ^2.0
phpmailer/phpmailer Version ^6.9
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 nabysyphpapi/xnabysygs contains the following files

Loading the files please wait ...