Download the PHP package gravity-framework/gravity-core without Composer
On this page you can find all versions of the php package gravity-framework/gravity-core. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Download gravity-framework/gravity-core
More information about gravity-framework/gravity-core
Files in gravity-framework/gravity-core
Package gravity-core
Short Description Gravity PHP Library for gravity-framework
License MIT
Informations about the package gravity-core
GRAVITY-CORE
Bibliothèque principale pour le framework gravity, vous pouvez l'utiliser aussi pour votre propre projet moyennant que ce dernier respecte quelques dépendances.
Installation
Via composer
Utilisez composer pour installer GRAVITY-CORE, dans la racine de votre projet tapez la commande suivante :
Manuellement
Vous pouvez aussi télécharger directement le code source sur le [dépot]() github et décompresser le dossier dans la racine de votre projet.
Vous devez utiliser quand même composer pour utiliser le core. En vous positionnant dans le dossier décompressé, tapez la commande suivante :
Dans le fichier autoload.php dans le dossier vendor de votre projet ajouter la ligne suivante au debut du fichier
Dépendances
Pour utiliser GRAVITY-CORE, vous pouvez soit utiliser gravity-framework ou faire en sorte que la structure de votre projet réponde à quelques critères :
-
Dossier configs contenant au moins deux fichiers : configs.php, database.php
Le fichier configs.php permettent de faire les liens entre les divers scripts tels que : php, javascript, css (présents dans un dossier spécifique par exemple : public) ou même des dossiers images et autres de votre projet. configs.php :
Le fichier database.php sert à renseigner les différentes configurations de votre base de données si vous en utilisez database.php - Fichier .htaccess (optionnel), pour utiliser au mieux le systême de routes si par exemple vous voulez utiliser comme paramètre dans l'url pour vos points d'entrée pour gérer vos différentes routes
- Dossier templates (pour des projets web), qui contiendra vos différentes vues et gabarits. vous pouvez les classer en sous-dossiers selon vos différents modules de votre application.
Exemple d'un gabarit : Vous pouvez constater la partie qui varie du gabarit est déclarée en php par la variable
Exemple d'une vue qui descend du gabarit : Voir dans l'[exemple]() d'un projet comment utiliser les templates avec gravity.
Note :
En utlisant gravity-framework, la structure récommandée pour votre projet est automatiquement respectée
Routes
Dans le fichier principal de votre projet, par exemple index.php, vous utilisez l'objet pour déclarer vos routes.
Exemple :
Dans cet exemple, on a déclaré trois routes de trois maniêres différentes.
Permet de déclarer une route en spécifiant un chemin, une fonction (closure) qui exprime l'action à effectuer lors du déclenchement de la route.
Dans l'action on affiche une vue index présente dans le dossier , cette vue est basée sur un gabarit nommé layout présent à la racine du dossier templates.
Deux autres moyens de déclarer une route, cette fois-ci en utilisant des méthodes de controleur
Voir gravity-framework pour plus de détails sur comment utiliser les routes et les controleurs avec gravity.
Il faut penser au final à démarrer le router dans un bloc try/catch :
Base de données
Si vous utilisez une base de données, assurez-vous que les configurations sont correctes dans le fichier présent dans le dossier configs.
Entity
Pour chaque table que vous utiliserez vous créerez une classe d'entité correspondante.
Par exemple pour une table articles avec des colonnes suivantes :
- id (clé primaire)
- titre
- contenu
- auteur
- date_publication
- date_modification
- commentaires
Vous aurez une classe dérivée de la classe avec uniquement les champs requis :
Note : Inutile de préciser l'attribut , puisque gravity prend en charge automatiquement les clés primaires.
Repository
Pour chaque classe d'entité créée, il faut une classe de type , pour communiquer effectivement avec la base à tout moment.
Classe ArcticleRepository :
Attention : Si la clé primaire de votre table porte un nom différent de id, vous devez absolument ajouter le champ statique avec comme valeur le nom de la clé de la manière suivante :
.
Récupération et maipulation des données
Vous pouvez maintenant manipuler ou récupérer les données soit à travers un controleur ou directement lors de la définition des routes par exemple pour le rendre à l'utilisateur.
Exemple d'utilisation
Les méthodes , , permettent de manipuler une entité à travers son repository correspondant, il y en a d'autres méthodes, référez vous à gravity-framework pour avoir un idée plus claire sur leur utilisation.
Ressources
Il est possible de récupérer les données selon une structure différente de celle de la base, et même les modifier partiellement lors du rendu.
Pour cela il faut créer une classe resource dérivée de adaptée à votre entité.
Pour notre exemple article, on pourrait le formater pour afficher rédacteur au lieu d'auteur, on pourrait aussi afficher seulement les 20 premiers caractères du contenu. pour cela on implémente la méthode en retournant un tableau renfermant votre nouvelle structure
Illustration :
Vous pourriez aussi formater la date de publication selon vos besoins.
A l'affichage vous utilisez l'instance de la classe resource créée pour rendre les données formatées
Attention : Pour formatter un tableau d'entités, vous utilisez la méthode au lieu de
Licences
GRAVITY-CORE est publiée sous licence MIT, voir le fichier LICENSE.txt ou visiter http://www.opensource.org/licenses/mit-license.php pour plus de détails
Contributions
Toutes les contributions sont les bienvenues en vue d'améliorer la librairie et le framework, selon les rêgles, respect et courtoisie
Extra
N'hésitez pas à reporter vos problèmes dans la section issues, pour une meilleure communication et contribuer le plus possible à l'avancement du projet