Affichage des articles dont le libellé est Symfony. Afficher tous les articles
Affichage des articles dont le libellé est Symfony. Afficher tous les articles
Application Symfony2 Part 9 : Créer un Système de Pagination
Introduction :
Nous allons voir dans ce Tuto comment créer
un system de pagination ( KnpPaginatorBundle ) pour gérer le nombre de film à afficher dans une page
web.
Installation et Configuration du KnpPaginatorBundle :
Nous
allons rendre visite au site http://knpbundles.com/ ou il
y a plus que 2700 bundles à utiliser et intégrer dans notre applicationDans la zone de recherche tapez KnpPaginatorBundle
http://knpbundles.com/KnpLabs/KnpPaginatorBundle
http://knpbundles.com/KnpLabs/KnpPaginatorBundle
- Tapez cette ligne de commande dans CMD
php composer.phar require knplabs/knp-paginator-bundle - Copier la configuration dans fichier config.yml de votre application.
knp_paginator: page_range: 5 # default page range used in pagination control default_options: page_name: page # page query parameter name sort_field_name: sort # sort field query parameter name sort_direction_name: direction # sort direction query parameter name distinct: true # ensure distinct results, useful when ORM queries are using GROUP BY statements template: pagination: KnpPaginatorBundle:Pagination:sliding.html.twig # sliding pagination controls template sortable: KnpPaginatorBundle:Pagination:sortable_link.html.twig # sort link template - Activer le bundle dans Appkernel.php
public function registerBundles() { return array( // ... new Knp\Bundle\PaginatorBundle\KnpPaginatorBundle(), // ... ); } - Ajouter la fonction de pagination dans Controller
public function indexAction() { $em = $this->getDoctrine()->getManager(); $request=$this->getRequest(); $listefilms = $em->getRepository('FilmoBundle:Film')->findAll(); $entities = $this->get('knp_paginator')->paginate($listefilms,
$request->query->get('page', 1)/*page number*/,
6/*limit per page*/
);
return $this->render('FilmoBundle:Film:index.html.twig', array(
'entities' => $entities, )); } Dans cette exemple nous allons appliquée le system de pagination à la $listeFilms pour afficher 6 films par page commençant par la page 1
- Implémenter le system de pagination dans View
{# display navigation #} <div class="navigation"> {{ knp_pagination_render(entities) }} </div>
Voici le vidéo de l'exemple :
Merci pour Votre Attention
x
Application Symfony2 : Part 8 Upload des fichier avec doctrine
Introduction
Nous allons voir dans ce Tuto comment
gérer l’upload des fichiers avec doctrine pour notre entité FILM
Mise à jour de l'entité Film et la base de données
Nous allons rendre visite au site Symfony.com et dans la zone de recherche tapez "upload file doctrine"
https://symfony.com/doc/2.7/cookbook/doctrine/file_uploads.html
https://symfony.com/doc/2.7/cookbook/doctrine/file_uploads.html
Maintenant copier la variable path et les autres fonction dans votre entité Film
/** * @ORM\Column(type="string", length=255, nullable=true) */ public $path; public function getAbsolutePath() { return null === $this->path ? null : $this->getUploadRootDir().'/'.$this->path; } public function getWebPath() { return null === $this->path ? null : $this->getUploadDir().'/'.$this->path; } protected function getUploadRootDir() { // the absolute directory path where uploaded // documents should be saved return __DIR__.'/../../../../web/'.$this->getUploadDir(); } protected function getUploadDir() { // get rid of the __DIR__ so it doesn't screw up // when displaying uploaded doc/image in the view. return 'uploads/films'; }
- La variable path c’est le chemin de notre fichier
- Changer le chemin d’upload dans fonction getUploadDir() uploads/films
- Maintenant nous allons ajouter un champ de type file dans FilmType.php
->add('file')
- Ajouter cette attribut à notre Entité film n'oublié pas les getters et setters et les Use pour le cas des Assert et file.
use Symfony\Component\Validator\Constraints as Assert; use Symfony\Component\HttpFoundation\File\UploadedFile;
/** * @Assert\File(maxSize="6000000") */ private $file; /** * Sets file. * * @param UploadedFile $file */ public function setFile(UploadedFile $file = null) { $this->file = $file; } /** * Get file. * * @return UploadedFile */ public function getFile() { return $this->file; }
- Ajouter Fonction upload() dans Entité Film
public function upload() { if (null === $this->getFile()) { return; } $this->getFile()->move( $this->getUploadRootDir(), $this->getFile()->getClientOriginalName() ); $this->path = $this->getFile()->getClientOriginalName(); $this->file = null; }
- Dans Controller il faut faire un appel à la fonction upload dans la fonction createAction()
if ($form->isValid()) { $em = $this->getDoctrine()->getManager(); $entity->upload(); $em->persist($entity); $em->flush(); }
- Maintenant nous devons faire un mise à jour de la base de donnéesphp app/console doctrine:schema:update --force
Affichage dans View
<img src="{{ asset('uploads/films/'~entity.path) }}" >Le tilde " ~ " c’est pour faire la concatenation
Merci pour Votre Attention
Application Symfony2 : Part 2 Insertion et Affichage des Categories
Introduction
Au cours de la 2éme partie de ce tutoriel, nous allons voir comment insérer et afficher des catégories.
Insertion Des données
Plutôt que d'effectuer une requête INSERT INTO, nous allons utiliser la puissance de Symfony2 et de Doctrine pour ajouter des catégories de film.
d'abord nous allons préparer la structure générale d'une page :
Routing :
Routing :
Controller :
Ce code montre comment travailler avec la doctrine à l'intérieur d'un contrôleur en utilisant la méthode getDoctrine (). Cette méthode est une raccourci pour obtenir le service de la doctrine.
ligne 13 : Cette ligne récupère l'objet de gestionnaire d'entités de la doctrine, qui est responsable de la gestion du processus de la persistance et de la récupération des objets vers et depuis la base de données.
lignes 15, 20, 25 : Dans ses lignes, vous instancier et travailler avec l'objet $categorie comme un autre, objet PHP normal.
lignes 18, 23, 28 : persist () Méthode dit Doctrine de «gérer» l'objet $categorie. Cela ne provoque pas réellement une requête à apporter à la base de données.
ligne 30 : La méthode flush () est appelée, Doctrine regarde à travers tous les objets qu'il est la gestion pour voir si ils ont besoin d'être persisté à la base de données.
=> Lorsque vous appelez la méthode flush (), elle exécute les requêtes dans le bon ordre
Comme pour l'insertion nous allons passer par 3 étapes
Controller :
Vous pouvez penser à un "Repository" comme une classe PHP dont le seul travail est de vous aider récupérez des entités d'une certaine classe.
ligne 14 : findAll() récupérer tous les données dans l'objet Categorie getRepository('FilmoBundle:Categorie')
View, Templating
Twig définit trois types de syntaxe particulière:
{{ ... }} Affichage
{% ... %} Il est utilisé pour exécuter des instructions telles que boucles for par exemple.
{# ... #} il est l'équivalent de la PHP / * commentaire * / syntaxe. Il est utilisé pour ajouter des commentaires simples ou multi-lignes. Le contenu des commentaires ne sont pas inclus dans les pages rendus.
Voici le vidéo de l'exemple :
À la prochaine part 3 : Symfony2 et les formulaires (Objet Acteur)
ligne 13 : Cette ligne récupère l'objet de gestionnaire d'entités de la doctrine, qui est responsable de la gestion du processus de la persistance et de la récupération des objets vers et depuis la base de données.
lignes 15, 20, 25 : Dans ses lignes, vous instancier et travailler avec l'objet $categorie comme un autre, objet PHP normal.
lignes 18, 23, 28 : persist () Méthode dit Doctrine de «gérer» l'objet $categorie. Cela ne provoque pas réellement une requête à apporter à la base de données.
ligne 30 : La méthode flush () est appelée, Doctrine regarde à travers tous les objets qu'il est la gestion pour voir si ils ont besoin d'être persisté à la base de données.
=> Lorsque vous appelez la méthode flush (), elle exécute les requêtes dans le bon ordre
View :
Symfony2 intègre le moteur de template Twig. Twig vous permet d'écrire, de modèles concis et lisible qui sont plus respectueux de concepteurs de sites Web et, à plusieurs égards, plus puissant que les modèles de PHP:Afficher les données
Comme pour l'insertion nous allons passer par 3 étapes
- Routing
- Controller
- View
Routing :
Controller :
Vous pouvez penser à un "Repository" comme une classe PHP dont le seul travail est de vous aider récupérez des entités d'une certaine classe.
ligne 14 : findAll() récupérer tous les données dans l'objet Categorie getRepository('FilmoBundle:Categorie')
View, Templating
Twig définit trois types de syntaxe particulière:
{{ ... }} Affichage
{% ... %} Il est utilisé pour exécuter des instructions telles que boucles for par exemple.
{# ... #} il est l'équivalent de la PHP / * commentaire * / syntaxe. Il est utilisé pour ajouter des commentaires simples ou multi-lignes. Le contenu des commentaires ne sont pas inclus dans les pages rendus.
Voici le vidéo de l'exemple :
Merci pour Votre Attention
Application Symfony2 Gestion des Films, Part 1 : Création des entités et les tables
Introduction
Au cours de ce tutorial, nous allons
nous lancer dans la création d'une application web en utilisant le framework symfony2. Nous allons créer
gestionnaire des films pas à pas:
- Chaque film comportes un ou plusieurs acteurs
- Chaque film est classé dans une Catégorie( Comédie, Science-fiction, etc )
MISE EN PLACE DE VOTRE BASE DE DONNÉES AVEC DOCTRINE
Nous allons commencer à créer les "Entity". En fait, symfony2 utilise doctrine pour communiquer avec la base de
données MySQL. Doctrine est un ORM qui va nous permettre de traiter toutes nos
tables comme de simples objets. Ainsi pour chacune des tables de notre
application, nous devons créer sa représentation objet.
Les entités vont être créées dans le
dossier Entity, donc, commençons par créer un dossier "Entity" dans
notre bundle: "Gestion_Films/src/HTM/FilmoBundle/Entity"
L’application nécessitant 4 tables "Film", "Acteur", "Categorie" et "Film_Acteur" table d’association entre film et acteur
Nous allons créer les 3 class Film,
Acteur et categorie pour la table film_acteur elle va être générer
automatiquement.
Configuration de la base de données
Avant de commencer, vous aurez besoin de
configurer vos informations de connexion de base de données. Par convention,
cette information est généralement configurée dans un fichier
app/config/parameters.yml
app/config/parameters.yml
Changer le nom de la base à : gestion_film
Maintenant que Doctrine connaît votre
base de données, vous pouvez l'avoir créer
php app/console doctrine:database:create
Création des classes (Entité)
Vous pouvez avoir Doctrine créé des
classes d'entités simples pour vous. Cela vous poser des questions interactives
pour vous aider à construire une entité
php app/console doctrine:generate:entity
Gérer les relations :
class Film{//code du classe film/*** @ORM\ManyToOne(targetEntity="Categorie")* @ORM\JoinColumn(name="categorie_id", referencedColumnName="id")*/Private $categorie;/*** @ORM\ManyToMany(targetEntity="Acteur")* @ORM\JoinTable(name="Film_Acteur")*/Private $acteurs;
Génération des Getters et Setters:
Pour les deux attributs que nous avons
déjà ajouté dans le class film il faut générer les Getters et Setters
php app/console doctrine:generate:entities FilmoBundle:Film# ou bienphp app/console doctrine:generate:entities FilmoBundle# génère toutes les entités du FilmoBundle
Créer les tables de la base:
Doctrine peut créer automatiquement
toutes les tables de base de données nécessaires pour chaque entité connue dans
votre application. Pour ce faire, exécutez:
php app/console doctrine:schema:update --force
Voici le vidéo de l'exemple
À la prochaine part 2 : Insertion et affichage des
données dans la base
Merci pour votre Attention
Création d'un Bundle et une première page avec symfony 2.7
Introduction
Dans cette article nous allons voir comment créer un bundle avec symfony 2.7 en utilisant le console ( invite de commande ) et aussi nous allons créer notre propre page.
Création d'un Bundle
pour créer un Bundle nous allons suivre les étapes suivants :
- Ouvrir une fenêtre de commande sous le répertoire de votre projet ( shift + clic droite ) pour moi c'est Test2symfony C:\wamp\www\Test2symfony.
- Pour consulter la liste des commandes il suffit de taper php app/console et la commande que nous allons utilisé pour créer notre Bundle c'est :
php app/console generate:bundle - Dans Bundle namespace nous allons mettre Nom_du_Site/NomBundle
le mot Bundle à la fin c'est obligatoire avec B en majuscule, pour moi je vais mettre
Bundle namespace: Monsite/TestBundle - Bundle name : TestBundle
- Target directory : nous allons vu dans un article précédent que le code source de notre application vas être implémenter sous répertoire src donc cliquez sur Entrer.
- Configuration format: vous pouvez choisir entre 4 configuration possible
<< xml, yml, php, annotation >> je vous conseille de choisir YML c'est la meilleur configuration. - Pour le reste des étapes taper Yes jusqu’à la fin.
- Maintenant vérifier le dossier SRC vous allez trouver un dossier Monsite et dans ce dossier vous trouvez TestBundle
Création une première page
La création d'une nouvelle page dans symfony2 est un simple processus de trois étapes.
Etape 1: Création de la route
Le fichier de configuration de routage de notre TestBundle est situé à : Src/MonSite/TestBundle/resources/config/routing.yml
page1:
path: /firstpage
defaults: { _controller: TestBundle:First:page }
1ère ligne : page1 c'est le nom de la page ou aussi identifiant car deux page ne peuvent pas avoirs le même nom.
ème ligne : /firstpage c'est le route il définit l'URL à votre page.
3ème ligne : c'est là où nous allons spécifier le nom du fonction à exécuter page elle doit être déclare dans FirstController du notre Bundle TesTbundle
Etape 2: Créer le contrôleur
Quand l'URL /firstpage est gérée par l'application, la route firstpage est apparié et le contrôleur TestBundle:First:page est exécuté par le framework. La deuxième étape du processus de création de la page est de créer ce contrôleur
Le contrôleur TestBundle:First:page est le nom logique du contrôleur, et elle correspond à la méthode pageAction de la classe PHP appelé Monsite\TestBundle\Controller\First. Commencez par créer ce fichier à l'intérieur de votre TestBundle:
Créer la méthode pageAction que Symfony va exécuter quand l'URL est firstpage:
Créer la méthode pageAction que Symfony va exécuter quand l'URL est firstpage:
namespace Monsite\TestBundle\Controller; use Symfony\Component\HttpFoundation\Response; class FirstController {
return $this->render('TestBundle:First:premier.html.twig');
}
Etape 3 : Créer le modèle
le contrôleur rend le TestBundle:First:premier.html.twig, qui utilise la convention de dénomination suivante :BundleName:ControllerName:TemplateName
il s'agit du nom logique du model qui est associé à un emplacement physique en utilisant la convention suivante.
/Resources/views /ControllerName/templateName
Dans ce cas, TestBundle est le nom du bundle , First est le contrôleur , et premier.html.twig le template.
{# src/Monsite/TestBundle/Resources/views/First/premier.html.twig #}
Bonjour c'est ma première page avec symfony2
Voici le vidéo de l'exemple :
Merci pour Votre Attention.
Php n'est pas reconnu comme commande interne ou externe
Introduction
PHP n'est pas reconnu comme une commande interne ou externe est une erreur commune pour les utilisateurs de Windows utilisant wampserver.
Problème
Quand un utilisateur utilise invite de commande pour exécuter une commande php un erreur est produit.
Solution
- Dans le menu Démarrer, cliquez droit sur "Poste de travail" et cliquez sur «Propriétés».
- Paramétrés de système avancées puis sur -> avancés.
- Vous verrez l'image sur la droite pop up.
Vers le bas, cliquez
sur "Variables d'environnement». - cliquez sur "Variable système" faites défiler la liste jusqu'à ce que vous voyez une variable appelée «path»
- Cliquez sur 'path' puis cliquez sur modifier et ajoutez votre "chemin php" pour moi le chemin est : C:\wamp\bin\php\php5.5.12
- Maintenant, pour la partie la plus importante. Assurez-vous que tout est sauvegardé, fermez-le et puis redémarrez votre ordinateur.
Maintenant que votre ordinateur a redémarré, essayer votre commande à nouveau.
Voici un vidéo pour mieux comprendre les étapes que nous avons fait.
Merci pour votre Attention.
Installtion de Symfony 2.7 en utilisant symfony Installer
Qu'est ce que symfony installer ?
C'est une application php qui doit être installé dans votre système une seule fois et elle peut créer un nombre illimité d'applications Symfony.
Le programme d'installation requiert PHP 5.4 ou supérieur. Si vous utilisez encore la version héritage PHP 5.3, vous ne pouvez pas utiliser le programme d'installation de Symfony.
Le programme d'installation requiert PHP 5.4 ou supérieur. Si vous utilisez encore la version héritage PHP 5.3, vous ne pouvez pas utiliser le programme d'installation de Symfony.
Installation du Symfony Installer ( Windows Systems ) .
Ouvrez votre console de commande sous C:/wamp/www/ et exécutez la commande suivante.
php -r "file_put_contents('symfony', file_get_contents('http://symfony.com/installer'));"
ou bien
note: pour ouvrir votre console de commande dans un chemin spécifique Shift + clic droite
php -r "readfile('http://symfony.com/installer');" > symfony
note: pour ouvrir votre console de commande dans un chemin spécifique Shift + clic droite
Création de l'application Symfony.
Une fois l'installation de Symfony est disponible, créer votre première application Symfony avec la commande suivante.
php symfony new TestSymfony
Cette commande crée un nouveau répertoire appelé TestSymfony qui contient un nouveau projet, basé sur la version la plus récente et stable de Symfony.
Si vous voulez une version spécifique de Symfony, utilisez le second argument optionnel de la commande:
php symfony new TestSymfony 2.7.5
Je vous remercie pour votre attention
Introduction à Symfony 2
Symfony2 est un puissant framework qui va vous permettre de réaliser des sites complexes rapidement, mais de façon structurée et avec un code clair et maintenable. En un mot : le paradis du développeur !
Liste des répertoires :
- App :
Ce répertoire contient tout ce qui concerne votre site Internet, c'est : la configuration, le cache, les fichiers logs, etc. Ce sont des fichiers qui concernent l'entièreté de votre site, contrairement aux fichiers de code source qui seront découpés par fonctionnalité de votre site - Vendors :
Ce répertoire contient toutes les bibliothèques externes à notre application. Dans ces bibliothèques externes, j'inclus Symfony2 ! Vous pouvez parcourir ce répertoire ; vous y trouverez des bibliothèques comme Doctrine, Twig, SwiftMailer, etc. - Web :
Ce répertoire contient tous les fichiers destinés à vos visiteurs : images, fichiers CSS et JavaScript, etc. - Src :
Voici enfin le répertoire dans lequel on mettra le code source ! C'est ici qu'on vas développé notre application
Deux environnements de travail :
- L'environnement de développement, appelé « dev », accessible en utilisant le contrôleur frontal
app_dev.php. C'est l'environnement que l'on utilisera toujours pour développer. - L'environnement de production, appelé « prod », accessible en utilisant le contrôleur frontal
app.php.
Inscription à :
Articles (Atom)


