<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	
	xmlns:georss="http://www.georss.org/georss"
	xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#"
	>

<channel>
	<title>Archives des php - La programmation sur le web</title>
	<atom:link href="https://programmation.surleweb-france.fr/tag/php/feed/" rel="self" type="application/rss+xml" />
	<link>https://programmation.surleweb-france.fr/tag/php/</link>
	<description>La programmation gratuite pour tous</description>
	<lastBuildDate>Tue, 30 May 2023 19:15:09 +0000</lastBuildDate>
	<language>fr-FR</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.8.3</generator>

<image>
	<url>https://i0.wp.com/programmation.surleweb-france.fr/wp-content/uploads/2023/08/cropped-19518430-icone-de-programmation-pour-votre-site-web-mobile-presentation-et-conception-de-logo-gratuit-vectoriel.jpg?fit=32%2C32&#038;ssl=1</url>
	<title>Archives des php - La programmation sur le web</title>
	<link>https://programmation.surleweb-france.fr/tag/php/</link>
	<width>32</width>
	<height>32</height>
</image> 
<site xmlns="com-wordpress:feed-additions:1">176210735</site>	<item>
		<title>Maîtriser Laravel : Guide pratique pour un développement PHP efficace</title>
		<link>https://programmation.surleweb-france.fr/maitriser-laravel-guide-pratique-pour-un-developpement-php-efficace/</link>
					<comments>https://programmation.surleweb-france.fr/maitriser-laravel-guide-pratique-pour-un-developpement-php-efficace/#respond</comments>
		
		<dc:creator><![CDATA[Zigomato]]></dc:creator>
		<pubDate>Sat, 10 Jun 2023 18:40:47 +0000</pubDate>
				<category><![CDATA[Développement Web]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Artisan]]></category>
		<category><![CDATA[Blade]]></category>
		<category><![CDATA[Configuration Laravel]]></category>
		<category><![CDATA[Déploiement Laravel]]></category>
		<category><![CDATA[Eloquent ORM]]></category>
		<category><![CDATA[Forge]]></category>
		<category><![CDATA[Installation Laravel]]></category>
		<category><![CDATA[Laravel]]></category>
		<category><![CDATA[Middleware Laravel]]></category>
		<category><![CDATA[Modèle-Vue-Contrôleur]]></category>
		<category><![CDATA[MVC]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[Route Laravel]]></category>
		<category><![CDATA[Structure de projet Laravel]]></category>
		<category><![CDATA[Tests PHPUnit]]></category>
		<category><![CDATA[Tinker]]></category>
		<category><![CDATA[Vue]]></category>
		<guid isPermaLink="false">https://programmation.surleweb-france.fr/?p=1868</guid>

					<description><![CDATA[<p>Dans cet article, nous explorons comment utiliser Laravel, un framework PHP populaire, en commençant par une introduction et en passant par l'installation, la configuration, la structure de projet, les routes, les middleware, Eloquent ORM, Vue, Blade, Tinker, Artisan, et les tests avec PHPUnit. Nous concluons avec des options de déploiement et des ressources supplémentaires pour continuer à apprendre.</p>
<p class="continue-reading-button"> <a class="continue-reading-link" href="https://programmation.surleweb-france.fr/maitriser-laravel-guide-pratique-pour-un-developpement-php-efficace/">Continuer la lecture<i class="crycon-right-dir"></i></a></p>
<p>L’article <a href="https://programmation.surleweb-france.fr/maitriser-laravel-guide-pratique-pour-un-developpement-php-efficace/">Maîtriser Laravel : Guide pratique pour un développement PHP efficace</a> est apparu en premier sur <a href="https://programmation.surleweb-france.fr">La programmation sur le web</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<h2 class="wp-block-heading">1. Introduction à Laravel et PHP</h2>



<p><strong>PHP</strong>, ou Hypertext Preprocessor, est un langage de programmation de scripts côté serveur extrêmement populaire, surtout connu pour son utilisation dans le développement web <a href="https://www.php.net/" target="_blank" rel="noreferrer noopener">lien vers php.net</a>. Il est facile à comprendre, riche en fonctionnalités, et offre une grande flexibilité pour créer des sites web dynamiques.</p>



<p>Dans ce contexte, <strong>Laravel</strong> est un framework PHP open source conçu pour faciliter le développement web en offrant une structure de code claire et des outils puissants <a href="https://laravel.com/" target="_blank" rel="noreferrer noopener">lien vers laravel.com</a>. Laravel utilise une architecture MVC (Modèle-Vue-Contrôleur), qui favorise une organisation du code bien définie et facilite la maintenance des applications web. En outre, Laravel offre une vaste palette de fonctionnalités intégrées, telles que l&rsquo;ORM Eloquent pour une gestion facile des bases de données, un système de routage robuste, des outils de migration de base de données et des moteurs de templates pour une personnalisation simplifiée des vues.</p>



<p>Mais pourquoi utiliser Laravel plutôt que PHP pur ? Eh bien, bien que PHP soit puissant en soi, il peut devenir compliqué lors de la création d&rsquo;applications de grande envergure avec beaucoup de fonctionnalités. Laravel intervient pour faciliter le processus en fournissant une structure de code bien organisée, en automatisant certaines tâches courantes et en fournissant des outils préconstruits pour des fonctionnalités complexes. Laravel a été conçu avec l&rsquo;idée de rendre le développement web agréable et créatif, sans sacrifier la fonctionnalité.</p>



<p>En résumé, Laravel est un excellent choix pour tout développeur PHP qui souhaite développer rapidement des applications web robustes, maintenables et sécurisées. Au cours des prochains chapitres, nous allons explorer en détail comment utiliser ce framework formidable. Reste avec nous, et tu verras combien il est puissant et flexible.</p>



<h2 class="wp-block-heading">2. Installation et configuration</h2>



<p>Avant de commencer à développer avec Laravel, tu dois installer et configurer quelques outils. Assure-toi de respecter toutes les étapes pour éviter les problèmes plus tard.</p>



<h3 class="wp-block-heading">Exigences système</h3>



<p>Selon la documentation officielle de Laravel <a href="https://laravel.com/docs" target="_blank" rel="noreferrer noopener">lien vers documentation Laravel</a>, voici les prérequis pour installer Laravel :</p>



<ul class="wp-block-list">
<li>PHP &gt;= 7.3</li>



<li>BCMath PHP Extension</li>



<li>Ctype PHP Extension</li>



<li>Fileinfo PHP extension</li>



<li>JSON PHP Extension</li>



<li>Mbstring PHP Extension</li>



<li>OpenSSL PHP Extension</li>



<li>PDO PHP Extension</li>



<li>Tokenizer PHP Extension</li>



<li>XML PHP Extension</li>
</ul>



<p>Tu peux vérifier ces extensions PHP avec la commande <code><strong>php -m</strong></code> dans ton terminal.</p>



<h3 class="wp-block-heading">Installation de Composer</h3>



<p>Laravel utilise <strong>Composer</strong> pour gérer ses dépendances. Si tu ne l&rsquo;as pas déjà installé, tu peux le télécharger et l&rsquo;installer à partir du site officiel de Composer <a href="https://getcomposer.org/" target="_blank" rel="noreferrer noopener">lien vers getcomposer.org</a>.</p>



<h3 class="wp-block-heading">Installation de Laravel</h3>



<p>Une fois que Composer est installé, tu peux installer Laravel avec la commande suivante :</p>



<pre class="EnlighterJSRAW" data-enlighter-language="bash" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">composer global require laravel/installer</pre>



<p>Cette commande installe l&rsquo;installateur de Laravel dans ton système. Maintenant, tu peux créer un nouveau projet Laravel avec cette commande :</p>



<pre class="EnlighterJSRAW" data-enlighter-language="bash" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">laravel new nom_du_projet</pre>



<p>Remplace « nom_du_projet » par le nom que tu souhaites donner à ton projet.</p>



<h3 class="wp-block-heading">Configuration initiale</h3>



<p>Après avoir créé un nouveau projet Laravel, tu devrais voir un dossier avec le nom de ton projet. Navigue dans ce dossier avec la commande <code>cd <strong>nom_du_projet</strong></code>.</p>



<p>À l&rsquo;intérieur, tu trouveras un fichier <code><strong>.env</strong></code>. Ce fichier est utilisé pour configurer ton application. Tu peux le modifier pour configurer la base de données, le serveur de messagerie, et d&rsquo;autres paramètres.</p>



<p>Voilà, tu as réussi à installer et configurer Laravel ! Dans le prochain chapitre, nous allons explorer la structure de projet de Laravel et découvrir comment il organise le code.</p>



<h2 class="wp-block-heading">3. Structure de projet Laravel</h2>



<p>Comprendre la structure du dossier d&rsquo;un projet Laravel est crucial pour naviguer efficacement dans ton projet et pour placer correctement tes fichiers de code. Alors, entrons dans le vif du sujet.</p>



<p>Voici une description simplifiée de la structure du dossier d&rsquo;un projet Laravel :</p>



<ul class="wp-block-list">
<li><strong>/app</strong> : C&rsquo;est ici que se trouve la majorité de ta logique métier. Il contient les sous-dossiers suivants :
<ul class="wp-block-list">
<li><strong>/Http</strong> : Contient les contrôleurs, les middlewares et les requêtes.</li>



<li><strong>/Providers</strong> : Les fournisseurs de services sont stockés ici.</li>
</ul>
</li>



<li><strong>/bootstrap</strong> : Contient les scripts d&rsquo;initialisation de l&rsquo;application.</li>



<li><strong>/config</strong> : Ici, tu trouveras tous les fichiers de configuration de Laravel.</li>



<li><strong>/database</strong> : Contient les migrations, les factories de modèles et les graines de la base de données.</li>



<li><strong>/public</strong> : C&rsquo;est le dossier accessible au public. Il contient l&rsquo;<strong>index.php</strong>, qui est le point d&rsquo;entrée de toutes les requêtes.</li>



<li><strong>/resources</strong> : Contient les vues, les fichiers non compilés de SASS et Vue.js et les fichiers de localisation.</li>



<li><strong>/routes</strong> : Contient toutes les définitions de routes.</li>



<li><strong>/storage</strong> : Stocke les fichiers compilés de Blade, les fichiers de session, les caches et les fichiers de logs.</li>



<li><strong>/tests</strong> : Contient les tests automatisés.</li>



<li><strong>/vendor</strong> : Ici se trouvent les dépendances de Composer.</li>
</ul>



<h3 class="wp-block-heading">Modèle-Vue-Contrôleur (MVC)</h3>



<p>Laravel suit l&rsquo;architecture MVC, ce qui signifie qu&rsquo;il sépare le code en trois parties principales : Modèle, Vue, et Contrôleur.</p>



<ul class="wp-block-list">
<li><strong>Modèle (Model)</strong> : Gère les données, les règles de business et les fonctions. Dans Laravel, les modèles sont généralement placés dans le dossier <code>a<strong>pp/</strong></code>.</li>



<li><strong>Vue (View)</strong> : Présente les données à l&rsquo;utilisateur sous une forme agréable. Les vues sont stockées dans le dossier <code><strong>resources/views/</strong></code>.</li>



<li><strong>Contrôleur (Controller)</strong> : Traite les requêtes de l&rsquo;utilisateur, manipule les données à l&rsquo;aide du Modèle et rend la Vue appropriée. Les contrôleurs sont dans le dossier <code><strong>app/Http/Controllers/</strong></code>.</li>
</ul>



<p>C&rsquo;est une bonne pratique de suivre cette structure lors du développement de ton application Laravel. Cela rend ton code plus propre, plus facile à comprendre et à maintenir.</p>



<p>Dans le chapitre suivant, nous allons plonger plus profondément dans l&rsquo;utilisation des routes et des middlewares dans Laravel. Reste avec nous !</p>



<h2 class="wp-block-heading">4. Route et Middleware</h2>



<p>Comprendre le système de routage de Laravel est essentiel pour contrôler le flux de ton application. Les middlewares, d&rsquo;autre part, sont des couches de vérification qui filtrent les requêtes HTTP.</p>



<h3 class="wp-block-heading">Route</h3>



<p>Les routes définissent l&rsquo;URL de ton application et comment elle répond à différentes requêtes HTTP. Les fichiers de routes sont stockés dans le dossier <code>routes/</code>.</p>



<p>Pour définir une route, tu peux utiliser la méthode<strong> <code>Route::get()</code></strong>,<strong> <code>Route::post()</code></strong>, <code><strong>Route::put()</strong></code>, <code><strong>Route::patch()</strong></code>, ou <code><strong>Route::delete()</strong></code>, en fonction de la requête HTTP que tu veux gérer.</p>



<p>Voici un exemple d&rsquo;une simple route GET dans Laravel :</p>



<pre class="EnlighterJSRAW" data-enlighter-language="php" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">Route::get('/salut', function () {
    return 'Salut, bienvenue sur ma page !';
});</pre>



<p>Dans cet exemple, si tu visites <code>tonsite.com/salut</code>, tu verras &lsquo;Salut, bienvenue sur ma page !&rsquo; affiché.</p>



<h3 class="wp-block-heading">Middleware</h3>



<p>Les middlewares fournissent un moyen pratique de filtrer les requêtes HTTP entrant dans ton application. Par exemple, Laravel inclut un middleware qui vérifie si l&rsquo;utilisateur de ton application est authentifié.</p>



<p>Si tu veux ajouter un middleware à une route, tu peux le faire de cette manière :</p>



<pre class="EnlighterJSRAW" data-enlighter-language="php" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">Route::get('/dashboard', function () {
    // Contenu de la route
})-&amp;gt;middleware('auth');</pre>



<p>Dans cet exemple, l&rsquo;utilisateur doit être authentifié pour accéder à <code><strong>tonsite.com/dashboard</strong></code>. Sinon, Laravel redirigera l&rsquo;utilisateur vers la page de connexion.</p>



<p>Laravel facilite également la création de ton propre middleware. Tu peux créer un nouveau middleware avec la commande Artisan :</p>



<pre class="EnlighterJSRAW" data-enlighter-language="bash" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">php artisan make:middleware NomDuMiddleware</pre>



<p>Une fois ton middleware créé, tu peux ajouter ta logique dans la méthode <code>handle</code> dans le fichier du middleware (qui se trouve dans <code><strong>app/Http/Middleware</strong></code>).</p>



<p>C&rsquo;est tout pour ce chapitre sur les routes et les middlewares de Laravel ! Dans le chapitre suivant, nous allons explorer le système Eloquent ORM de Laravel et comment il facilite l&rsquo;interaction avec la base de données.</p>



<h2 class="wp-block-heading">5. Eloquent ORM</h2>



<p>Laravel offre un outil puissant pour interagir avec ta base de données : Eloquent ORM (Object-Relational Mapping). Eloquent te permet de travailler avec tes données de base de données comme si c&rsquo;étaient des objets dans ton code.</p>



<h3 class="wp-block-heading">Modèles</h3>



<p>Un modèle Eloquent représente une table de base de données en PHP. Par exemple, tu pourrais avoir un modèle <code>User</code> pour ta table <code>users</code>. Pour créer un modèle, tu peux utiliser la commande Artisan :</p>



<pre class="EnlighterJSRAW" data-enlighter-language="bash" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">php artisan make:model User</pre>



<p>Cette commande crée un fichier de modèle dans <code>app/Models</code>.</p>



<h3 class="wp-block-heading">Migrations</h3>



<p>Les migrations sont comme une version de contrôle pour ta base de données. Elles te permettent de modifier la structure de ta base de données au fil du temps. Tu peux créer une migration avec cette commande :</p>



<pre class="EnlighterJSRAW" data-enlighter-language="php" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">php artisan make:migration create_users_table</pre>



<p>Cette commande crée un nouveau fichier de migration dans le dossier <code><strong>database/migrations</strong></code>.</p>



<h3 class="wp-block-heading">Relations</h3>



<p>Eloquent facilite également la définition des relations entre tes modèles. Par exemple, si tu as un modèle <code>User</code> et un modèle <code>Post</code>, tu peux définir une relation « un utilisateur a plusieurs posts » de cette façon :</p>



<pre class="EnlighterJSRAW" data-enlighter-language="php" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">public function posts()
{
    return $this->hasMany('App\Models\Post');
}</pre>



<h3 class="wp-block-heading">Exemples de code</h3>



<p>Voici comment tu pourrais créer, lire, mettre à jour et supprimer des enregistrements avec Eloquent :</p>



<ul class="wp-block-list">
<li><strong>Créer</strong> un nouvel enregistrement :</li>
</ul>



<pre class="EnlighterJSRAW" data-enlighter-language="php" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">$user = new User;
$user->name = 'John Doe';
$user->email = 'john@doe.com';
$user->save();</pre>



<ul class="wp-block-list">
<li><strong>Lire</strong> un enregistrement :</li>
</ul>



<pre class="EnlighterJSRAW" data-enlighter-language="php" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">$user = User::find(1);
echo $user->name;</pre>



<ul class="wp-block-list">
<li><strong>Mettre à jour</strong> un enregistrement :</li>
</ul>



<pre class="EnlighterJSRAW" data-enlighter-language="php" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">$user = User::find(1);
$user->name = 'Jane Doe';
$user->save();</pre>



<ul class="wp-block-list">
<li><strong>Supprimer</strong> un enregistrement :</li>
</ul>



<pre class="EnlighterJSRAW" data-enlighter-language="php" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">$user = User::find(1);
$user->delete();</pre>



<p>Dans le chapitre suivant, nous allons découvrir comment Laravel rend la création de l&rsquo;interface utilisateur facile et flexible avec son moteur de templates Blade.</p>



<h2 class="wp-block-heading">6. Vue et Blade</h2>



<p>Laravel utilise un moteur de template puissant appelé Blade pour gérer les vues de ton application. Avec Blade, tu peux facilement afficher des données, créer des structures de contrôle comme des boucles et des conditions, et même définir des sections réutilisables de ton code.</p>



<h3 class="wp-block-heading">Syntaxe Blade</h3>



<p>Blade offre une syntaxe expressive et facile à lire. Par exemple, pour afficher une variable, tu peux utiliser des accolades doubles :</p>



<pre class="EnlighterJSRAW" data-enlighter-language="html" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">Bonjour, {{ $name }}!</pre>



<p>Pour créer une structure de contrôle, tu peux utiliser des directives comme<strong> <code>@if</code></strong>, <code><strong>@foreach</strong></code>, et<strong> <code>@while</code></strong> :</p>



<pre class="EnlighterJSRAW" data-enlighter-language="html" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">@if ($user->isAdmin())
    &lt;p>Bonjour, admin !&lt;/p>
@endif

@foreach ($users as $user)
    &lt;p>{{ $user-&amp;gt;name }}&lt;/p>
@endforeach</pre>



<h3 class="wp-block-heading">Composants et slots</h3>



<p>Blade permet également de définir des composants réutilisables et des emplacements pour injecter du contenu. Pour créer un composant, tu peux utiliser la commande Artisan :</p>



<pre class="EnlighterJSRAW" data-enlighter-language="bash" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">>php artisan make:component Alert</pre>



<p>Cela crée un fichier de vue pour le composant dans <strong><code>resources/views/components</code> </strong>et une classe de composant dans <code><strong>app/View/Components</strong></code>.</p>



<p>Voici comment tu peux définir un composant et un slot :</p>



<pre class="EnlighterJSRAW" data-enlighter-language="html" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">&lt;!-- /resources/views/components/alert.blade.php -->
&lt;div class="alert">
    &lt;div class="alert-title">{{ $title }}&lt;/div>

    {{ $slot }}
&lt;/div></pre>



<p>Et voici comment tu peux utiliser ce composant :</p>



<pre class="EnlighterJSRAW" data-enlighter-language="html" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">&lt;x-alert title="Erreur !">
    Quelque chose s'est mal passé.
&lt;/x-alert></pre>



<p>Cela produirait le HTML suivant :</p>



<pre class="EnlighterJSRAW" data-enlighter-language="html" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">&lt;div class="alert">
    &lt;div class="alert-title">Erreur &lt;/div>

    Quelque chose s'est mal passé.
&lt;/div></pre>



<p>Blade est un outil puissant qui rend la création des vues dans Laravel facile et agréable. Dans le chapitre suivant, nous allons explorer Tinker et Artisan, deux outils qui rendent le développement avec Laravel encore plus agréable.</p>



<h2 class="wp-block-heading">7. Tinker et Artisan</h2>



<p>Dans ce chapitre, nous allons découvrir deux outils fantastiques qui font de Laravel un plaisir à utiliser : Tinker et Artisan.</p>



<h3 class="wp-block-heading">Tinker</h3>



<p>Laravel Tinker est un REPL (Read-Eval-Print Loop) qui te permet d&rsquo;interagir avec ton application Laravel à partir de la ligne de commande. Avec Tinker, tu peux exécuter n&rsquo;importe quel code PHP dans l&rsquo;environnement de ton application Laravel.</p>



<p>Pour démarrer Tinker, tu peux utiliser la commande Artisan <code>tinker</code> :</p>



<pre class="EnlighterJSRAW" data-enlighter-language="bash" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">php artisan tinker</pre>



<p>Cela lance une session Tinker dans ton terminal. À partir de là, tu peux interagir avec ton application Laravel. Par exemple, tu peux créer un nouvel utilisateur :</p>



<pre class="EnlighterJSRAW" data-enlighter-language="bash" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">>>> $user = new App\Models\User;
>>> $user->name = 'John Doe';
>>> $user->email = 'john@doe.com';
>>> $user->save();</pre>



<h3 class="wp-block-heading">Artisan</h3>



<p>Artisan est l&rsquo;interface en ligne de commande de Laravel. Il offre une multitude de commandes utiles pour effectuer des tâches courantes.</p>



<p>Par exemple, pour créer un nouveau contrôleur, tu peux utiliser la commande <code><strong>make:controller</strong></code> :</p>



<pre class="EnlighterJSRAW" data-enlighter-language="bash" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">php artisan make:controller UserController</pre>



<p>Pour lister toutes les routes de ton application, tu peux utiliser la commande <code><strong>route:list</strong></code> :</p>



<pre class="EnlighterJSRAW" data-enlighter-language="bash" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">php artisan route:list</pre>



<p>Artisan offre également une commande pour servir ton application sur un serveur de développement local :</p>



<pre class="EnlighterJSRAW" data-enlighter-language="bash" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">php artisan serve</pre>



<p>Artisan et Tinker sont deux outils puissants qui rendent le développement avec Laravel rapide et efficace. Dans le prochain chapitre, nous allons nous pencher sur le système d&rsquo;authentification de Laravel.</p>



<h2 class="wp-block-heading">8. Authentification</h2>



<p>L&rsquo;authentification est une partie essentielle de nombreuses applications web, et Laravel le rend incroyablement simple avec son système d&rsquo;authentification intégré. Dans ce chapitre, nous allons découvrir comment Laravel gère l&rsquo;authentification.</p>



<h3 class="wp-block-heading">Installation</h3>



<p>Depuis Laravel 6.x, le paquet <strong><code>laravel/ui</code> </strong>est utilisé pour générer l&rsquo;interface utilisateur d&rsquo;authentification. Tu peux l&rsquo;installer en utilisant Composer :</p>



<pre class="EnlighterJSRAW" data-enlighter-language="bash" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">composer require laravel/ui</pre>



<p>Ensuite, tu peux générer l&rsquo;interface utilisateur d&rsquo;authentification avec la commande Artisan :</p>



<pre class="EnlighterJSRAW" data-enlighter-language="bash" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">php artisan ui vue --auth</pre>



<p>Cette commande génère les vues, les routes, et les contrôleurs nécessaires pour l&rsquo;authentification.</p>



<h2 class="wp-block-heading">Utilisation</h2>



<p>Avec le système d&rsquo;authentification installé, tu peux accéder à l&rsquo;utilisateur actuellement authentifié avec <code><strong>Auth::user()</strong></code>, et tu peux vérifier si un utilisateur est authentifié avec <code><strong>Auth::check()</strong></code>.</p>



<p>Tu peux également protéger les routes en utilisant le middleware <code>auth</code>. Les utilisateurs non authentifiés qui tentent d&rsquo;accéder à ces routes seront redirigés vers la page de connexion.</p>



<pre class="EnlighterJSRAW" data-enlighter-language="php" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">Route::get('/dashboard', function () {
    // Contenu de la route
})->middleware('auth');</pre>



<h3 class="wp-block-heading">Personnalisation</h3>



<p>Laravel permet une grande personnalisation de son système d&rsquo;authentification. Tu peux personnaliser le contrôleur d&rsquo;authentification, les modèles d&rsquo;authentification, et les vues d&rsquo;authentification pour répondre aux besoins spécifiques de ton application.</p>



<p>Dans le prochain chapitre, nous allons découvrir comment Laravel te permet d&rsquo;envoyer des emails, d&rsquo;exécuter des tâches en arrière-plan, et de diffuser des événements en temps réel avec ses fonctionnalités intégrées de queue, de mailing, et de broadcasting.</p>



<h2 class="wp-block-heading">9. Queues, Mailing, et Broadcasting</h2>



<p>Laravel fournit un certain nombre de fonctionnalités puissantes pour gérer les tâches en arrière-plan, envoyer des e-mails et diffuser des événements en temps réel.</p>



<h3 class="wp-block-heading">Queues</h3>



<p>Les files d&rsquo;attente dans Laravel permettent de différer l&rsquo;exécution de tâches lourdes pour éviter que le processus de la demande ne soit bloqué. Par exemple, tu peux mettre en file d&rsquo;attente l&rsquo;envoi d&rsquo;un e-mail après qu&rsquo;un utilisateur s&rsquo;inscrive à ton application.</p>



<p>Pour créer une nouvelle tâche en file d&rsquo;attente, tu peux utiliser la commande Artisan <code><strong>make:job</strong></code> :</p>



<pre class="EnlighterJSRAW" data-enlighter-language="bash" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">php artisan make:job SendWelcomeEmail</pre>



<p>Ensuite, tu peux définir la logique de ta tâche dans la méthode <code><strong>handle</strong></code> du <strong>job</strong>.</p>



<p>Pour mettre en file d&rsquo;attente un travail, tu peux utiliser la méthode <strong><code>dispatch</code> </strong>:</p>



<pre class="EnlighterJSRAW" data-enlighter-language="php" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">SendWelcomeEmail::dispatch($user);</pre>



<h3 class="wp-block-heading">Mailing</h3>



<p>Laravel fournit une interface simple et propre pour envoyer des e-mails via différents services de messagerie, tels que SMTP, Mailgun, Postmark, Amazon SES, et Sendmail.</p>



<p>Pour créer une nouvelle classe de mail, tu peux utiliser la commande Artisan <code><strong>make:mail</strong></code> :</p>



<pre class="EnlighterJSRAW" data-enlighter-language="bash" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">php artisan make:mail WelcomeMail</pre>



<p>Ensuite, tu peux définir la présentation de ton courrier dans la méthode <code><strong>build</strong></code>.</p>



<p>Pour envoyer un courrier, tu peux utiliser la façade <strong><code>Mail</code> </strong>:</p>



<pre class="EnlighterJSRAW" data-enlighter-language="php" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">Mail::to($user->email)->send(new WelcomeMail($user));</pre>



<h3 class="wp-block-heading">Broadcasting</h3>



<p>Laravel facilite la diffusion d&rsquo;événements en temps réel via WebSockets. Cela est particulièrement utile pour les fonctionnalités qui nécessitent une interaction en temps réel, comme les chats ou les notifications en direct.</p>



<p>Pour créer un nouvel événement, tu peux utiliser la commande Artisan <code><strong>make:event</strong></code> :</p>



<pre class="EnlighterJSRAW" data-enlighter-language="php" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">php artisan make:event MessageSent</pre>



<p>Pour diffuser un événement, tu peux utiliser la méthode <code>broadcast</code> :</p>



<pre class="EnlighterJSRAW" data-enlighter-language="php" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">broadcast(new MessageSent($message));</pre>



<p>Avec ces fonctionnalités, Laravel te permet de créer des applications web robustes et réactives. Dans le chapitre suivant, nous allons conclure en discutant de l&rsquo;écosystème autour de Laravel et des ressources pour continuer à apprendre.</p>



<h2 class="wp-block-heading">10. Écosystème Laravel et Ressources d&rsquo;apprentissage</h2>



<p>Après avoir exploré les fonctionnalités essentielles de Laravel, il est temps de parler de son riche écosystème et des ressources d&rsquo;apprentissage disponibles pour t&rsquo;aider à continuer à maîtriser ce framework.</p>



<h3 class="wp-block-heading">Écosystème Laravel</h3>



<p>Laravel a une communauté active qui a développé une gamme de packages, d&rsquo;outils et de plateformes pour améliorer encore davantage le développement avec Laravel.</p>



<ul class="wp-block-list">
<li><strong>Laravel Nova</strong> : Une solution d&rsquo;administration magnifiquement conçue pour Laravel.</li>



<li><strong>Laravel Echo</strong> : Un outil pour travailler avec Websockets en PHP.</li>



<li><strong>Laravel Horizon</strong> : Un tableau de bord et un système de contrôle pour Laravel Queues.</li>



<li><strong>Laravel Dusk</strong> : Un outil d&rsquo;automatisation des tests de navigateur pour Laravel.</li>



<li><strong>Laravel Vapor</strong> : Une plateforme d&rsquo;hébergement sans serveur pour Laravel, alimentée par AWS.</li>



<li><strong>Laravel Forge</strong> : Une plateforme pour l&rsquo;automatisation de l&rsquo;hébergement des serveurs Laravel.</li>



<li><strong>Laravel Mix</strong> : Une API fluide pour définir les tâches de compilation Webpack pour Laravel.</li>
</ul>



<h3 class="wp-block-heading">Ressources d&rsquo;apprentissage</h3>



<p>Il existe de nombreuses ressources pour continuer à apprendre Laravel :</p>



<ul class="wp-block-list">
<li><strong>Documentation officielle</strong> : La documentation de Laravel est extrêmement complète et est un excellent point de départ pour comprendre les différentes fonctionnalités de Laravel. <a href="https://laravel.com/docs" target="_blank" rel="noreferrer noopener">Documentation Laravel</a></li>



<li><strong>Laracasts</strong> : Laracasts est une plateforme de tutoriels vidéo pour Laravel et d&rsquo;autres technologies web. C&rsquo;est une excellente ressource pour apprendre Laravel de manière plus visuelle. <a href="https://laracasts.com/" target="_blank" rel="noreferrer noopener">Laracasts</a></li>



<li><strong>Blogs et tutoriels</strong> : De nombreux développeurs Laravel partagent leurs connaissances à travers des blogs et des tutoriels. Des sites comme Medium, Dev.to et le blog Laravel News sont de bons endroits pour trouver ces ressources.</li>



<li><strong>Communauté</strong> : La communauté Laravel est active et accueillante. Des plateformes comme Stack Overflow, Reddit, et le forum Laravel.io sont d&rsquo;excellents endroits pour poser des questions et obtenir de l&rsquo;aide.</li>
</ul>



<p>Nous espérons que ce guide t&rsquo;a donné une bonne introduction à Laravel et t&rsquo;a montré pourquoi c&rsquo;est un excellent choix pour le développement web en PHP. Bonne programmation !</p>
<p>L’article <a href="https://programmation.surleweb-france.fr/maitriser-laravel-guide-pratique-pour-un-developpement-php-efficace/">Maîtriser Laravel : Guide pratique pour un développement PHP efficace</a> est apparu en premier sur <a href="https://programmation.surleweb-france.fr">La programmation sur le web</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://programmation.surleweb-france.fr/maitriser-laravel-guide-pratique-pour-un-developpement-php-efficace/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">1868</post-id>	</item>
		<item>
		<title>Maîtriser le développement PHP avec CodeIgniter : un guide pratique pour les débutants</title>
		<link>https://programmation.surleweb-france.fr/maitriser-le-developpement-php-avec-codeigniter-un-guide-pratique-pour-les-debutants/</link>
					<comments>https://programmation.surleweb-france.fr/maitriser-le-developpement-php-avec-codeigniter-un-guide-pratique-pour-les-debutants/#respond</comments>
		
		<dc:creator><![CDATA[Zigomato]]></dc:creator>
		<pubDate>Tue, 06 Jun 2023 15:29:36 +0000</pubDate>
				<category><![CDATA[Développement Web]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[API REST]]></category>
		<category><![CDATA[base de données]]></category>
		<category><![CDATA[bibliothèques]]></category>
		<category><![CDATA[CodeIgniter]]></category>
		<category><![CDATA[configuration]]></category>
		<category><![CDATA[contrôleurs]]></category>
		<category><![CDATA[CSRF]]></category>
		<category><![CDATA[débogage]]></category>
		<category><![CDATA[formulaire]]></category>
		<category><![CDATA[Gestion des erreurs]]></category>
		<category><![CDATA[helpers]]></category>
		<category><![CDATA[injection SQL]]></category>
		<category><![CDATA[journalisation]]></category>
		<category><![CDATA[modèles]]></category>
		<category><![CDATA[MVC]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[requêtes HTTP]]></category>
		<category><![CDATA[routes]]></category>
		<category><![CDATA[sécurité]]></category>
		<category><![CDATA[validation de formulaire]]></category>
		<category><![CDATA[vues]]></category>
		<category><![CDATA[XSS]]></category>
		<guid isPermaLink="false">https://programmation.surleweb-france.fr/?p=1860</guid>

					<description><![CDATA[<p>Cet article a pour objectif de guider les développeurs PHP à travers l'installation et l'utilisation du framework CodeIgniter. Il détaille la création de contrôleurs et de vues, le routage, l'interaction avec les bases de données, la gestion des formulaires et les pratiques de sécurité, le tout enrichi d'exemples de code et de liens vers des ressources supplémentaires.</p>
<p class="continue-reading-button"> <a class="continue-reading-link" href="https://programmation.surleweb-france.fr/maitriser-le-developpement-php-avec-codeigniter-un-guide-pratique-pour-les-debutants/">Continuer la lecture<i class="crycon-right-dir"></i></a></p>
<p>L’article <a href="https://programmation.surleweb-france.fr/maitriser-le-developpement-php-avec-codeigniter-un-guide-pratique-pour-les-debutants/">Maîtriser le développement PHP avec CodeIgniter : un guide pratique pour les débutants</a> est apparu en premier sur <a href="https://programmation.surleweb-france.fr">La programmation sur le web</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<h2 class="wp-block-heading"><strong>Chapitre 1 : Introduction</strong></h2>



<p>Bienvenue dans ce guide pratique sur CodeIgniter, un framework de développement web incroyablement puissant basé sur PHP. Avant de nous plonger dans les détails de CodeIgniter, voyons d&rsquo;abord ce qu&rsquo;est PHP et pourquoi il est si important.</p>



<p><strong>PHP</strong> (Hypertext Preprocessor) est un langage de programmation open source largement utilisé, spécifiquement conçu pour le développement web. PHP est particulièrement apprécié pour sa simplicité et sa flexibilité. Tu peux consulter le site officiel de PHP <a href="https://www.php.net/">ici</a> pour en savoir plus.</p>



<p>Maintenant, passons à <strong>CodeIgniter</strong>. CodeIgniter est un framework de développement PHP qui facilite la création d&rsquo;applications web robustes. Il propose une structure et des bibliothèques de code réutilisables qui te permettent de te concentrer sur le développement de ton application sans te soucier des détails bas-niveau. De plus, CodeIgniter offre une performance impressionnante par rapport à d&rsquo;autres frameworks PHP et est connu pour sa documentation claire et complète. Pour plus de détails, consulte le site officiel de CodeIgniter <a href="https://codeigniter.com/" target="_blank" rel="noreferrer noopener">ici</a>.</p>



<p>Alors, pourquoi utiliser CodeIgniter ? Il y a trois raisons principales :</p>



<ol class="wp-block-list">
<li><strong>Simplicité</strong> : CodeIgniter est facile à comprendre et à utiliser, ce qui le rend idéal pour les débutants.</li>



<li><strong>Performance</strong> : CodeIgniter est plus rapide que la plupart des autres frameworks PHP, ce qui signifie que ton application sera plus performante.</li>



<li><strong>Sécurité</strong> : CodeIgniter offre une multitude de fonctionnalités de sécurité intégrées qui rendent ton application plus sûre.</li>
</ol>



<p>Maintenant que tu comprends mieux ce qu&rsquo;est PHP et CodeIgniter et pourquoi ils sont si précieux, nous pouvons commencer à explorer comment utiliser CodeIgniter pour développer des applications web. Alors, prêt ? Allons-y !</p>



<h2 class="wp-block-heading"><strong>Chapitre 2 : Installation de CodeIgniter</strong></h2>



<p>Avant de pouvoir utiliser CodeIgniter, il te faut d&rsquo;abord l&rsquo;installer. Mais avant de plonger dans l&rsquo;installation, vérifions d&rsquo;abord les prérequis.</p>



<p><strong>Prérequis</strong> Pour installer CodeIgniter, tu as besoin de PHP 7.3 ou supérieur et d&rsquo;un serveur web comme Apache. Aussi, certaines extensions PHP sont nécessaires. Tu peux trouver la liste complète des prérequis sur la page de <a href="https://codeigniter.com/user_guide/intro/requirements.html" target="_blank" rel="noreferrer noopener">documentation de CodeIgniter</a>.</p>



<p><strong>Installation du framework</strong> CodeIgniter peut être téléchargé depuis le site officiel <a href="https://codeigniter.com/download" target="_blank" rel="noreferrer noopener">ici</a>. Une fois téléchargé, décompresse le fichier dans le répertoire de ton serveur web.</p>



<p><strong>Structure du dossier CodeIgniter</strong> Il est important de comprendre la structure du dossier CodeIgniter pour savoir où placer tes fichiers de code. Voici une brève description de quelques-uns des dossiers principaux :</p>



<ul class="wp-block-list">
<li><strong>/application/</strong> : C&rsquo;est là que la majorité de ton travail aura lieu. Ce dossier contient des sous-dossiers pour tes contrôleurs, modèles, vues, etc.</li>



<li><strong>/system/</strong> : Ce dossier contient le code du framework CodeIgniter lui-même. Il est généralement préférable de ne pas y toucher.</li>



<li><strong>/public/</strong> : Ce dossier contient ton fichier <strong>index.php </strong>et tous tes assets (CSS, JavaScript, images, etc.).</li>
</ul>



<p>En prenant le temps d&rsquo;installer correctement CodeIgniter et de comprendre la structure de ses dossiers, tu te prépares à un développement plus efficace et organisé. Dans le prochain chapitre, nous commencerons à écrire du code en créant notre premier contrôleur.</p>



<h2 class="wp-block-heading"><strong><br>Chapitre 3 : Premiers pas avec CodeIgniter</strong></h2>



<p>Maintenant que tu as installé CodeIgniter, nous allons commencer à développer avec. Nous explorerons d&rsquo;abord les bases : la création d&rsquo;un contrôleur, d&rsquo;une vue et comment gérer le routage.</p>



<h3 class="wp-block-heading"><strong>Création d&rsquo;un contrôleur</strong></h3>



<p>Dans CodeIgniter, un contrôleur est un fichier PHP qui contient des méthodes qui correspondent à différentes URLs. Par exemple, tu peux avoir une méthode <code>index()</code> qui est appelée lorsque personne n&rsquo;accède à ton site, et une méthode <code>about()</code> qui est appelée lorsque quelqu&rsquo;un accède à <code>www.tonsite.com/about</code>.</p>



<p>Pour créer un contrôleur, va dans le dossier <code>/application/controllers/</code> et crée un nouveau fichier PHP. Le nom de ce fichier doit commencer par une majuscule. Par exemple, tu peux créer un fichier <code>Welcome.php</code> qui ressemble à ceci :</p>



<pre class="EnlighterJSRAW" data-enlighter-language="generic" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">&lt;?php
defined('BASEPATH') OR exit('No direct script access allowed');

class Welcome extends CI_Controller {
	public function index()
	{
		$this-&lt;load-&lt;view('welcome_message');
	}
}</pre>



<p>Ici, <strong><code>Welcome</code> </strong>est le nom du contrôleur, et <strong><code>index()</code> </strong>est une méthode. Quand quelqu&rsquo;un accède à <code><strong>www.tonsite.com/welcome</strong></code>, la méthode<strong> <code>index()</code></strong> sera appelée.</p>



<h3 class="wp-block-heading"><strong>Création d&rsquo;une vue</strong></h3>



<p>Une vue est simplement un fichier PHP qui contient du HTML. Dans le contrôleur ci-dessus, nous avons utilisé <code>$this->load->view('welcome_message')</code> pour charger une vue appelée <code><strong>welcome_message</strong></code>.</p>



<p>Pour créer une vue, va dans le dossier <code><strong>/application/views/</strong></code> et crée un nouveau fichier PHP. Par exemple, tu pourrais créer un fichier <strong><code>welcome_message.php</code> </strong>qui ressemble à ceci :</p>



<pre class="EnlighterJSRAW" data-enlighter-language="php" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">&lt;!DOCTYPE html>
&lt;html>
&lt;head>
	&lt;title>Welcome&lt;/title>
&lt;/head>
&lt;body>
	&lt;h1>Welcome to CodeIgniter!&lt;/h1>
&lt;/body>
&lt;/html></pre>



<p>Maintenant, quand quelqu&rsquo;un accède à <code><strong>www.tonsite.com/welcome</strong></code>, ils verront le message « Welcome to CodeIgniter! ».</p>



<h3 class="wp-block-heading"><strong>Routage</strong></h3>



<p>Le routage détermine comment les URL sont associées aux méthodes de ton contrôleur. Par défaut, CodeIgniter utilise un routage basé sur l&rsquo;URL. C&rsquo;est-à-dire que <code><strong>www.tonsite.com/[nom_du_contrôleur]/[nom_de_la_méthode]</strong></code> appellera la méthode spécifiée du contrôleur spécifié.</p>



<p>Tu peux également définir des routes personnalisées dans le fichier <code><strong>/application/config/routes.php</strong></code>. Par exemple, pour faire en sorte que <code>www.tonsite.com/about</code> appelle la méthode <code>index()</code> du contrôleur <code>Welcome</code>, tu peux ajouter cette ligne :</p>



<pre class="EnlighterJSRAW" data-enlighter-language="php" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">$route['about'] = 'welcome/index';</pre>



<p>Voilà, tu as maintenant une bonne base pour commencer à développer avec CodeIgniter. Dans le prochain chapitre, nous explorerons comment interagir avec une base de données.</p>



<h2 class="wp-block-heading"><strong>Chapitre 4 : Base de données avec CodeIgniter</strong></h2>



<p>CodeIgniter facilite l&rsquo;interaction avec les bases de données. Que tu aies besoin d&rsquo;insérer des données, de les récupérer ou de les mettre à jour, CodeIgniter te couvre. Dans ce chapitre, nous examinerons comment configurer une base de données, utiliser le Query Builder et utiliser les modèles.</p>



<p><strong>Configuration</strong></p>



<p>Avant de pouvoir utiliser une base de données, tu dois d&rsquo;abord la configurer. Va dans le fichier <code><strong>/application/config/database.php</strong></code> et renseigne tes informations de base de données :</p>



<pre class="EnlighterJSRAW" data-enlighter-language="php" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">$db['default'] = array(
	'dsn'	=> '',
	'hostname' =>'localhost',
	'username' => 'root',
	'password' => '',
	'database' => 'database_name',
	'dbdriver' => 'mysqli',
	// autres options...
);</pre>



<p>Ici, <code><strong>hostname</strong></code>, <code><strong>username</strong></code>, <strong><code>password</code> </strong>et <strong><code>database</code> </strong>doivent être remplacés par tes propres informations de base de données.</p>



<h3 class="wp-block-heading"><strong>Utilisation du Query Builder</strong></h3>



<p>CodeIgniter propose un Query Builder qui facilite la construction de requêtes SQL. Par exemple, pour récupérer toutes les données d&rsquo;une table appelée <code>users</code>, tu pourrais faire :</p>



<pre class="EnlighterJSRAW" data-enlighter-language="php" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">$query = $this->db->get('users');
foreach ($query->result() as $row)
{
	echo $row->username;
}</pre>



<p>Ici, <code><strong>$this->db->get('users')</strong></code> est une méthode de Query Builder qui génère une requête <strong>SQL <code>SELECT * FROM users</code>.</strong></p>



<h3 class="wp-block-heading"><strong>Utilisation des modèles</strong></h3>



<p>Les modèles représentent la structure des données dans CodeIgniter. Un modèle est un fichier PHP qui contient des fonctions pour interagir avec une certaine partie de ta base de données.</p>



<p>Par exemple, tu pourrais avoir un modèle <code>User_model</code> qui contient des fonctions pour récupérer, insérer et mettre à jour des utilisateurs. Un exemple basique de modèle pourrait ressembler à ceci :</p>



<pre class="EnlighterJSRAW" data-enlighter-language="php" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">&lt;?php
class User_model extends CI_Model {

	public function get_all_users()
	{
		$query = $this->db->get('users');
		return $query->result();
	}
}</pre>



<p>Pour utiliser ce modèle, tu dois d&rsquo;abord le charger dans ton contrôleur avec <strong><code>$this->load->model('User_model')</code>.</strong> Ensuite, tu peux appeler ses méthodes avec<strong> <code>$this->User_model->get_all_users()</code></strong>.</p>



<p>Avec ces outils, tu es maintenant prêt à interagir avec une base de données dans CodeIgniter. Dans le prochain chapitre, nous explorerons comment gérer les formulaires.</p>



<h2 class="wp-block-heading"><strong>Chapitre 5 : Formulaires avec CodeIgniter</strong></h2>



<p>Les formulaires sont un élément crucial de toute application web. Ils permettent aux utilisateurs d&rsquo;interagir avec ton site, que ce soit pour se connecter, s&rsquo;inscrire, laisser un commentaire ou tout autre type d&rsquo;interaction. CodeIgniter propose des outils pour faciliter la gestion des formulaires.</p>



<h3 class="wp-block-heading"><strong>Création d&rsquo;un formulaire</strong></h3>



<p>Pour créer un formulaire avec CodeIgniter, tu peux utiliser la bibliothèque de formulaire fournie. Pour charger cette bibliothèque, ajoute le code suivant dans ton contrôleur : <code><strong>$this->load->helper('form')</strong>;</code></p>



<p>Voici un exemple simple de formulaire de connexion :</p>



<pre class="EnlighterJSRAW" data-enlighter-language="php" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">echo form_open('login/submit');
echo form_label('Nom d\'utilisateur', 'username');
echo form_input('username');
echo form_label('Mot de passe', 'password');
echo form_password('password');
echo form_submit('submit', 'Se connecter');
echo form_close();</pre>



<p>Ceci générera un formulaire HTML avec des champs pour le nom d&rsquo;utilisateur et le mot de passe, ainsi qu&rsquo;un bouton pour se connecter.</p>



<h3 class="wp-block-heading"><strong>Validation des entrées</strong></h3>



<p>La validation des entrées de formulaire est essentielle pour la sécurité et la fiabilité de ton application. CodeIgniter propose une bibliothèque de validation de formulaire qui rend cela facile. Pour charger cette bibliothèque, ajoute le code suivant dans ton contrôleur : <code><strong>$this->load->library('form_validation')</strong>;</code></p>



<p>Voici un exemple de comment valider les entrées du formulaire de connexion ci-dessus :</p>



<pre class="EnlighterJSRAW" data-enlighter-language="generic" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">$this->form_validation->set_rules('username', 'Nom d\'utilisateur', 'required');
$this->form_validation->et_rules('password', 'Mot de passe', 'required');

if ($this->form_validation->run() === FALSE)
{
	// Le formulaire est invalide, réafficher le formulaire
	$this->load->view('login_form');
}
else
{
	// Le formulaire est valide, traiter les données
	$this->login_model->login();
}</pre>



<p>Ici, <strong><code>required</code> </strong>est une règle qui indique que le champ est obligatoire. Si un utilisateur essaye de soumettre le formulaire sans remplir tous les champs, le formulaire sera réaffiché.</p>



<h3 class="wp-block-heading"><strong>Soumission des données</strong></h3>



<p>Pour traiter les données de formulaire, tu peux récupérer les valeurs des champs avec <code><strong>$this->input->post('nom_du_champ')</strong></code>. Par exemple, pour récupérer le nom d&rsquo;utilisateur et le mot de passe du formulaire de connexion ci-dessus, tu peux faire :</p>



<pre class="EnlighterJSRAW" data-enlighter-language="php" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">$username = $this->input->post('username');
$password = $this->input->post('password');</pre>



<p>Tu peux alors utiliser ces valeurs pour vérifier les identifiants de l&rsquo;utilisateur, par exemple.</p>



<p>Avec ces outils, tu es maintenant prêt à gérer les formulaires avec CodeIgniter. Dans le prochain chapitre, nous explorerons les fonctionnalités de sécurité offertes par CodeIgniter.</p>



<h2 class="wp-block-heading"><strong>Chapitre 6 : Sécurité avec CodeIgniter</strong></h2>



<p>La sécurité est un aspect crucial de toute application web. Heureusement, CodeIgniter offre un certain nombre de fonctionnalités intégrées pour aider à sécuriser ton application.</p>



<h3 class="wp-block-heading"><strong>Nettoyage des entrées</strong></h3>



<p>Il est important de toujours nettoyer les entrées des utilisateurs pour éviter les attaques par injection SQL. CodeIgniter facilite cela avec la méthode <code><strong>$this->input->post()</strong></code>, qui nettoie automatiquement les entrées des utilisateurs. Tu peux utiliser cette méthode comme ceci :</p>



<pre class="EnlighterJSRAW" data-enlighter-language="php" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">$username = $this->input->post('username');
$password = $this->input->post('password');</pre>



<h3 class="wp-block-heading"><strong>Protection CSRF</strong></h3>



<p>CodeIgniter offre une protection CSRF (Cross-Site Request Forgery) intégrée. Pour l&rsquo;activer, va dans le fichier <strong><code>/application/config/config.php</code> </strong>et régle la variable <strong><code>$config['csrf_protection']</code> </strong>sur <code><strong>TRUE</strong></code>. Une fois activée, CodeIgniter ajoutera automatiquement un token caché à tous tes formulaires, et vérifiera ce token chaque fois qu&rsquo;un formulaire est soumis.</p>



<h3 class="wp-block-heading"><strong>Protection XSS</strong></h3>



<p>CodeIgniter offre également une protection XSS (Cross-Site Scripting) intégrée. Tu peux activer cette protection en utilisant la méthode <code><strong>$this->input->post()</strong></code> avec un deuxième argument <code>TRUE</code>, comme ceci :</p>



<pre class="EnlighterJSRAW" data-enlighter-language="php" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">$username = $this->input->post('username', TRUE);</pre>



<p>Cette méthode appliquera une série de filtres pour éliminer les caractères potentiellement malveillants des entrées des utilisateurs.</p>



<h3 class="wp-block-heading"><strong>Escaping des requêtes SQL</strong></h3>



<p>Enfin, CodeIgniter propose également une méthode pour échapper aux requêtes SQL. Cette méthode te permet de sécuriser les valeurs que tu insères dans tes requêtes SQL. Par exemple :</p>



<pre class="EnlighterJSRAW" data-enlighter-language="php" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">$sql = "INSERT INTO users (username, password) VALUES (?, ?)";
$this->db->query($sql, array($username, $password));</pre>



<p>Ici, les valeurs <code>$username</code> et <code>$password</code> sont automatiquement échappées, ce qui signifie qu&rsquo;elles sont sécurisées contre les attaques par injection SQL.</p>



<p>Avec ces fonctionnalités de sécurité intégrées, CodeIgniter t&rsquo;aide à développer des applications web sûres et robustes. N&rsquo;oublie jamais que la sécurité est un aspect crucial de toute application, et prends toujours les mesures nécessaires pour protéger tes utilisateurs.</p>



<h2 class="wp-block-heading"><strong>Chapitre 7 : Utiliser les bibliothèques et helpers de CodeIgniter</strong></h2>



<p>CodeIgniter est livré avec un ensemble de bibliothèques et helpers utiles qui peuvent grandement faciliter le développement. Dans ce chapitre, nous examinerons comment charger et utiliser quelques-uns d&rsquo;entre eux.</p>



<h3 class="wp-block-heading"><strong>Chargement des bibliothèques et helpers</strong></h3>



<p>Pour utiliser une bibliothèque ou un helper dans CodeIgniter, tu dois d&rsquo;abord le charger. Tu peux le faire avec les méthodes <strong><code>$this->load->library('nom_de_la_bibliothèque')</code> </strong>et <code>$<strong>this->load->helper('nom_du_helper')</strong></code>. Par exemple :</p>



<pre class="EnlighterJSRAW" data-enlighter-language="php" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">$this->load->library('email');
$this->load->helper('url');</pre>



<p>Dans cet exemple, nous avons chargé la bibliothèque <code>email</code> et le helper <code>url</code>.</p>



<h3 class="wp-block-heading"><strong>Utiliser une bibliothèque</strong></h3>



<p>Une fois qu&rsquo;une bibliothèque est chargée, tu peux l&rsquo;utiliser en appelant ses méthodes avec <code><strong>$this->[nom_de_la_bibliothèque]->[nom_de_la_méthode]</strong></code>. Par exemple, pour envoyer un e-mail avec la bibliothèque <code>email</code>, tu peux faire :</p>



<pre class="EnlighterJSRAW" data-enlighter-language="php" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">$this->email->from('your@example.com', 'Your Name');
$this->email->to('someone@example.com');
$this->email->subject('Email Test');
$this->email->message('Testing the email class.');
$this->email->send();</pre>



<h3 class="wp-block-heading"><strong>Utiliser un helper</strong></h3>



<p>Un helper est simplement un fichier qui contient un ensemble de fonctions dans un but spécifique. Tu peux appeler ces fonctions directement une fois que le helper est chargé. Par exemple, le helper <code>url</code> fournit la fonction<strong> <code>base_url()</code></strong>, qui renvoie l&rsquo;URL de base de ton application :</p>



<pre class="EnlighterJSRAW" data-enlighter-language="php" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">echo base_url();</pre>



<h3 class="wp-block-heading"><strong>Créer tes propres bibliothèques et helpers</strong></h3>



<p>En plus des bibliothèques et helpers intégrés, tu peux également créer les tiens. Pour ce faire, crée simplement un nouveau fichier dans le dossier <code><strong>/application/libraries/</strong></code> pour une bibliothèque, ou dans le dossier <code><strong>/application/helpers/</strong></code> pour un helper. Tu peux ensuite charger et utiliser ces fichiers comme tu le ferais avec ceux intégrés.</p>



<p>Les bibliothèques et les helpers sont des outils puissants qui peuvent te faire gagner beaucoup de temps et d&rsquo;efforts lors du développement avec CodeIgniter. Assure-toi de bien comprendre comment ils fonctionnent et comment les utiliser efficacement.</p>



<h2 class="wp-block-heading"><strong>Chapitre 8 : Comment déboguer dans CodeIgniter</strong></h2>



<p>Lors du développement d&rsquo;une application, il est essentiel de savoir comment déboguer et résoudre les problèmes qui surviennent. CodeIgniter propose plusieurs outils pour t&rsquo;aider dans ce processus.</p>



<h3 class="wp-block-heading"><strong>Journalisation des erreurs</strong></h3>



<p>CodeIgniter peut enregistrer automatiquement les erreurs dans un fichier journal. Pour activer cette fonctionnalité, va dans le fichier <code>/application/config/config.php</code> et régle la variable <code><strong>$config['log_threshold']</strong></code> à un niveau d&rsquo;erreur qui correspond à tes besoins. Par exemple, tu pourrais la régler à <code>1</code> pour enregistrer les erreurs d&rsquo;exécution uniquement, ou à <code>4</code> pour enregistrer toutes les informations de débogage.</p>



<pre class="EnlighterJSRAW" data-enlighter-language="php" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">$config['log_threshold'] = 4;</pre>



<p>Les messages de journalisation sont écrits dans le dossier<strong> <code>/application/logs/</code></strong>.</p>



<h3 class="wp-block-heading"><strong>Rapports d&rsquo;erreur</strong></h3>



<p>Pour afficher les erreurs directement dans la page web, tu peux utiliser la fonction <code><strong>show_error()</strong></code>. Par exemple :</p>



<pre class="EnlighterJSRAW" data-enlighter-language="generic" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">if (!$this->db->simple_query('SELECT * FROM table'))
{
	show_error('Erreur de base de données !');
}</pre>



<p>Dans cet exemple, si la requête SQL échoue, un message d&rsquo;erreur s&rsquo;affiche.</p>



<h3 class="wp-block-heading"><strong>Profiler</strong></h3>



<p>CodeIgniter possède un profiler intégré qui peut afficher des informations sur l&rsquo;exécution de ton application, telles que les requêtes de base de données, les variables POST, les données de session et plus encore. Pour activer le profiler, utilise la méthode <code><strong>$this->output->enable_profiler(TRUE)</strong></code> dans ton contrôleur.</p>



<pre class="EnlighterJSRAW" data-enlighter-language="php" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">$this->output->enable_profiler(TRUE);</pre>



<p>Cela affichera les informations de profilage en bas de ta page.</p>



<h3 class="wp-block-heading"><strong>Fonction de débogage</strong></h3>



<p>La fonction <code><strong>print_r()</strong></code> de PHP peut être très utile pour déboguer dans CodeIgniter. Tu peux l&rsquo;utiliser pour afficher le contenu de n&rsquo;importe quelle variable. Par exemple :</p>



<pre class="EnlighterJSRAW" data-enlighter-language="php" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">$users = $this->User_model->get_all_users();
print_r($users);</pre>



<p>Dans cet exemple, le contenu du tableau<strong> <code>$users</code></strong> est affiché.</p>



<p>Avec ces outils de débogage, tu es prêt à résoudre les problèmes qui peuvent survenir lors du développement avec CodeIgniter. N&rsquo;oublie pas que le débogage est une compétence essentielle pour tout développeur, alors n&rsquo;hésite pas à passer du temps à l&rsquo;apprendre et à t&rsquo;améliorer.</p>



<h2 class="wp-block-heading"><strong>Conclusion</strong></h2>



<p>CodeIgniter est un puissant framework PHP qui te permet de créer des applications web de manière efficace et organisée. Sa richesse en fonctionnalités intégrées, comme la gestion des bases de données, la validation des formulaires, le routage, la sécurité et les bibliothèques et helpers, en fait un choix populaire parmi les développeurs PHP.</p>



<p>Ce guide a couvert l&rsquo;essentiel de ce que tu dois savoir pour commencer avec CodeIgniter. Nous avons examiné comment configurer CodeIgniter, comment créer des modèles, des vues et des contrôleurs, comment gérer les formulaires, comment utiliser les fonctionnalités de sécurité, comment utiliser les bibliothèques et helpers.</p>



<p>Mais n&rsquo;oublie pas, la meilleure façon d&rsquo;apprendre est de faire. Alors, lance-toi et commence à coder ! N&rsquo;hésite pas à te référer à la <a href="https://codeigniter.com/user_guide/index.html" target="_blank" rel="noreferrer noopener">documentation officielle de CodeIgniter</a> si tu as besoin d&rsquo;aide ou si tu veux en savoir plus sur une fonctionnalité spécifique.</p>



<p>Bonne chance dans ton voyage avec CodeIgniter !</p>
<p>L’article <a href="https://programmation.surleweb-france.fr/maitriser-le-developpement-php-avec-codeigniter-un-guide-pratique-pour-les-debutants/">Maîtriser le développement PHP avec CodeIgniter : un guide pratique pour les débutants</a> est apparu en premier sur <a href="https://programmation.surleweb-france.fr">La programmation sur le web</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://programmation.surleweb-france.fr/maitriser-le-developpement-php-avec-codeigniter-un-guide-pratique-pour-les-debutants/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">1860</post-id>	</item>
		<item>
		<title>Utilisation de Symfony en PHP : Guide complet pour développer des applications web robustes</title>
		<link>https://programmation.surleweb-france.fr/utilisation-de-symfony-en-php-guide-complet-pour-developper-des-applications-web-robustes/</link>
					<comments>https://programmation.surleweb-france.fr/utilisation-de-symfony-en-php-guide-complet-pour-developper-des-applications-web-robustes/#respond</comments>
		
		<dc:creator><![CDATA[Zigomato]]></dc:creator>
		<pubDate>Sun, 04 Jun 2023 14:51:57 +0000</pubDate>
				<category><![CDATA[Développement Web]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[configuration]]></category>
		<category><![CDATA[contrôleurs]]></category>
		<category><![CDATA[déploiement]]></category>
		<category><![CDATA[Doctrine]]></category>
		<category><![CDATA[framework]]></category>
		<category><![CDATA[injection de dépendances]]></category>
		<category><![CDATA[installation]]></category>
		<category><![CDATA[moteur de rendu]]></category>
		<category><![CDATA[ORM]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[routes]]></category>
		<category><![CDATA[sécurité]]></category>
		<category><![CDATA[services]]></category>
		<category><![CDATA[Symfony]]></category>
		<category><![CDATA[templates]]></category>
		<category><![CDATA[tests]]></category>
		<category><![CDATA[Twig]]></category>
		<category><![CDATA[utilisateurs]]></category>
		<guid isPermaLink="false">https://programmation.surleweb-france.fr/?p=1855</guid>

					<description><![CDATA[<p>Cet article présente une guide complet pour l'utilisation de Symfony, un puissant framework PHP, dans le développement d'applications web. En explorant des sujets tels que l'installation, la configuration, la gestion des routes, l'ORM, les services, la sécurité, les templates et les tests, vous découvrirez comment créer des applications web robustes et maintenables avec Symfony.</p>
<p class="continue-reading-button"> <a class="continue-reading-link" href="https://programmation.surleweb-france.fr/utilisation-de-symfony-en-php-guide-complet-pour-developper-des-applications-web-robustes/">Continuer la lecture<i class="crycon-right-dir"></i></a></p>
<p>L’article <a href="https://programmation.surleweb-france.fr/utilisation-de-symfony-en-php-guide-complet-pour-developper-des-applications-web-robustes/">Utilisation de Symfony en PHP : Guide complet pour développer des applications web robustes</a> est apparu en premier sur <a href="https://programmation.surleweb-france.fr">La programmation sur le web</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<h2 class="wp-block-heading">Introduction</h2>



<p>Symfony est un framework PHP open-source largement utilisé pour développer des applications web puissantes et évolutives. Il fournit une structure solide et des outils avancés qui facilitent le processus de développement. Que tu sois un développeur débutant ou expérimenté, Symfony peut t&rsquo;aider à créer des applications web de qualité professionnelle.</p>



<p>Depuis sa première version en 2005, Symfony a évolué pour devenir l&rsquo;un des frameworks les plus populaires dans l&rsquo;écosystème PHP. Il est utilisé par de grandes entreprises telles que Spotify, BlaBlaCar et Drupal. Sa popularité s&rsquo;explique par sa flexibilité, sa stabilité et son architecture modulaire, qui permettent de construire des applications web de toutes tailles et complexités.</p>



<p>Pour commencer à utiliser Symfony, tu devras d&rsquo;abord l&rsquo;installer sur ton environnement de développement. Symfony possède un site officiel (<a href="https://symfony.com/" target="_blank" rel="noreferrer noopener">https://symfony.com/</a>) qui fournit une documentation complète, des tutoriels et une communauté active. Tu peux suivre le guide d&rsquo;installation officiel de Symfony (<a href="https://symfony.com/doc/current/setup.html" target="_blank" rel="noreferrer noopener">https://symfony.com/doc/current/setup.html</a>) pour configurer ton environnement et installer Symfony via Composer.</p>



<p>Une fois Symfony installé, tu peux créer ton premier projet en utilisant la ligne de commande. Voici un exemple de commande pour créer un nouveau projet Symfony :</p>



<pre class="EnlighterJSRAW" data-enlighter-language="php" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">$ symfony new mon_projet</pre>



<p>Ce command permettra de créer un nouveau projet Symfony nommé « mon_projet » dans le dossier actuel. Une fois le projet créé, tu peux te rendre dans le répertoire du projet et exécuter le serveur de développement intégré pour voir ton application en action :</p>



<pre class="EnlighterJSRAW" data-enlighter-language="php" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">$ cd mon_projet
$ symphony server:start</pre>



<p>Symfony utilise un modèle de programmation MVC (Modèle-Vue-Contrôleur) pour structurer les applications web. Les contrôleurs jouent un rôle central dans Symfony. Ils reçoivent les requêtes HTTP et orchestrent les différentes actions à effectuer. Voici un exemple de code d&rsquo;un contrôleur Symfony qui retourne une simple réponse :</p>



<pre class="EnlighterJSRAW" data-enlighter-language="php" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">// src/Controller/DefaultController.php

namespace App\Controller;

use Symfony\Component\HttpFoundation\Response;

class DefaultController
{
    public function index()
    {
        return new Response('Bonjour, Symfony !');
    }
}</pre>



<p>Ce contrôleur définit une méthode <code>index()</code> qui renvoie une réponse HTTP contenant le texte « Bonjour, Symfony ! ». Tu peux ensuite configurer une route pour associer cette méthode à une URL spécifique dans le fichier <code>config/routes.yaml</code> :</p>



<pre class="EnlighterJSRAW" data-enlighter-language="php" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group=""># config/routes.yaml

index:
    path: /
    controller: App\Controller\DefaultController::index</pre>



<p>Maintenant, si tu accèdes à l&rsquo;URL racine de ton application, tu devrais voir le message « Bonjour, Symfony ! ».</p>



<p>Symfony offre de nombreuses fonctionnalités avancées, telles que l&rsquo;ORM Doctrine, qui facilite la gestion de la base de données, et le moteur de rendu Twig, qui simplifie la création de templates. Au fur et à mesure que tu explores Symfony, tu découvriras comment utiliser ces fonctionnalités pour développer des applications web robustes et efficaces.</p>



<p>Dans les sections suivantes de cet article, nous aborderons en détail l&rsquo;installation et la configuration de Symfony, la gestion des routes et des contrôleurs, l&rsquo;ORM, les services, la sécurité, les tests et bien d&rsquo;autres sujets passionnants. Prépare-toi à plonger dans le monde de Symfony et à développer des applications web de qualité professionnelle.</p>



<h2 class="wp-block-heading">Installation et configuration</h2>



<p>Pour commencer à utiliser Symfony, il est nécessaire de l&rsquo;installer et de configurer ton environnement de développement. Symfony utilise Composer, un gestionnaire de dépendances PHP, pour gérer ses packages et ses dépendances. Voici les étapes pour installer Symfony :</p>



<ol class="wp-block-list">
<li>Assure-toi d&rsquo;avoir PHP et Composer installés sur ton système.</li>



<li>Ouvre ton terminal et exécute la commande suivante pour installer Symfony via Composer :</li>
</ol>



<pre class="EnlighterJSRAW" data-enlighter-language="php" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">$ composer create-project symfony/website-skeleton nom_du_projet</pre>



<p>Cette commande téléchargera et installera les fichiers nécessaires pour un nouveau projet Symfony dans un dossier nommé « nom_du_projet ».</p>



<p>Une fois l&rsquo;installation terminée, tu peux accéder au répertoire de ton projet et exécuter le serveur de développement intégré en utilisant la commande suivante :</p>



<pre class="EnlighterJSRAW" data-enlighter-language="php" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">$ cd nom_du_projet
$ symphony server:start</pre>



<p>Cela démarrera le serveur de développement Symfony et ton application sera accessible à l&rsquo;adresse <a href="http://localhost:8000/">http://localhost:8000</a>.</p>



<p>Symfony offre une configuration flexible pour ton environnement de développement. Tu peux ajuster divers paramètres tels que la base de données, les services et les bundles dans le fichier <code>config/packages/</code> et <code>config/services.yaml</code>.</p>



<p>Pour en savoir plus sur l&rsquo;installation et la configuration de Symfony, consulte la documentation officielle de Symfony (<a href="https://symfony.com/doc/current/setup.html" target="_blank" rel="noreferrer noopener">https://symfony.com/doc/current/setup.html</a>).</p>



<p>Symfony fournit également une interface en ligne de commande (CLI) puissante appelée « Console » qui facilite la gestion de diverses tâches de développement. Tu peux exécuter des commandes Symfony en utilisant <code>bin/console</code> depuis la racine de ton projet. Par exemple, pour générer un nouveau contrôleur, tu peux exécuter la commande suivante :</p>



<pre class="EnlighterJSRAW" data-enlighter-language="php" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">$ bin/console make:controller DefaultController</pre>



<p>Cela générera automatiquement un nouveau contrôleur nommé <code>DefaultController</code> dans le répertoire <code>src/Controller</code> de ton projet.</p>



<p>En résumé, l&rsquo;installation de Symfony nécessite l&rsquo;utilisation de Composer pour créer un nouveau projet Symfony. Une fois installé, tu peux configurer ton environnement de développement en ajustant les fichiers de configuration appropriés. N&rsquo;oublie pas d&rsquo;utiliser la Console Symfony pour effectuer diverses tâches de développement plus efficacement.</p>



<p>Dans la prochaine partie de cet article, nous explorerons la structure d&rsquo;un projet Symfony et les conventions de codage qui te permettront de développer des applications web organisées et maintenables.</p>



<h2 class="wp-block-heading">Structure et conventions</h2>



<p>Symfony propose une structure de projet bien définie qui favorise une organisation claire et maintenable de ton code. Comprendre cette structure est essentiel pour développer des applications Symfony efficacement.</p>



<p>Voici un aperçu des principaux éléments de la structure d&rsquo;un projet Symfony :</p>



<ol class="wp-block-list">
<li>Le répertoire <code>src</code> : Ce répertoire contient le code source principal de ton application Symfony. C&rsquo;est là que tu développeras tes contrôleurs, modèles, services et autres classes spécifiques à ton application.</li>



<li>Le répertoire <code>config</code> : Il contient les fichiers de configuration de ton projet Symfony. Tu trouveras des fichiers tels que <code>routes.yaml</code>, qui définit les routes de ton application, et <code>services.yaml</code>, qui gère la configuration des services.</li>



<li>Le répertoire <code>templates</code> : Ce répertoire contient les fichiers de templates utilisés pour le rendu des vues dans ton application Symfony. Symfony utilise le moteur de rendu Twig par défaut pour gérer les templates.</li>



<li>Le répertoire <code>public</code> : Il s&rsquo;agit du point d&rsquo;entrée de ton application web. Les fichiers statiques tels que les images, les fichiers CSS et JavaScript sont stockés dans ce répertoire. Le fichier <code>index.php</code> dans ce répertoire est le point de départ de ton application Symfony.</li>



<li>Le répertoire <code>var</code> : Il contient les fichiers générés par Symfony, tels que les journaux, les caches et les fichiers temporaires.</li>
</ol>



<p>En plus de cette structure de base, Symfony utilise des conventions de codage pour faciliter la lisibilité et la maintenabilité du code. Voici quelques-unes des conventions les plus courantes :</p>



<ol class="wp-block-list">
<li>La norme de nommage des classes : Symfony suit la convention de nommage des classes appelée PSR-4. Les classes doivent être nommées en utilisant le style StudlyCaps et être placées dans des répertoires correspondant à leur espace de noms.</li>



<li>Les annotations : Symfony utilise largement les annotations pour configurer les fonctionnalités et le comportement de l&rsquo;application. Par exemple, tu peux utiliser l&rsquo;annotation <code>@Route</code> pour définir une route dans un contrôleur.</li>



<li>La configuration YAML : Symfony utilise le format YAML pour la configuration. Il permet de spécifier les paramètres, les services et les autres éléments de configuration d&rsquo;une manière lisible.</li>



<li>Les bundles : Les bundles sont des modules réutilisables dans Symfony. Ils regroupent des fonctionnalités spécifiques de manière organisée. Il est recommandé de structurer ton application en utilisant des bundles pour une meilleure modularité.</li>
</ol>



<p>En comprenant la structure d&rsquo;un projet Symfony et en respectant les conventions de codage, tu seras en mesure de développer des applications claires, organisées et faciles à maintenir. N&rsquo;hésite pas à explorer la documentation officielle de Symfony (<a href="https://symfony.com/doc/current/index.html" target="_blank" rel="noreferrer noopener">https://symfony.com/doc/current/index.html</a>) pour en savoir plus sur la structure et les conventions de Symfony.</p>



<p>Dans la partie suivante de cet article, nous aborderons en détail la gestion des routes et des contrôleurs dans Symfony, qui te permettront de répondre aux requêtes HTTP et de construire les fonctionnalités de ton application.</p>



<h2 class="wp-block-heading">Gestion des routes et des contrôleurs</h2>



<p>Dans Symfony, la gestion des routes et des contrôleurs joue un rôle central dans le traitement des requêtes HTTP et la construction des fonctionnalités de ton application. Comprendre comment définir les routes et les contrôleurs te permettra de créer des endpoints personnalisés et de répondre aux différentes actions de l&rsquo;utilisateur.</p>



<p>Définition des routes :<ul><li>Les routes dans Symfony permettent d&rsquo;associer des URL spécifiques à des actions dans tes contrôleurs. Tu peux définir les routes en utilisant des annotations directement dans tes contrôleurs ou en utilisant des fichiers de configuration.</li></ul></p>



<p><ul><li>Par exemple, pour définir une route pour la page d&rsquo;accueil de ton application, tu peux utiliser l&rsquo;annotation <code>@Route</code> dans ton contrôleur :</li></ul></p>



<pre class="EnlighterJSRAW" data-enlighter-language="php" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">/**
 *
 @Route("/", name="homepage") 
 */ 
public function index() { 
    // Logique de traitement 
} </pre>



<p>Cette annotation indique que la route « / » est associée à la méthode <code>index()</code> du contrôleur.</p>



<p>Contrôleurs :<ul><li>Les contrôleurs sont responsables de la réception des requêtes et de l&rsquo;exécution des actions correspondantes. Ils peuvent retourner des réponses HTTP ou rediriger vers d&rsquo;autres routes.</li></ul></p>



<p><ul><li>Un contrôleur Symfony est une classe qui étend la classe de base <code>AbstractController</code>. Il peut contenir différentes méthodes pour répondre à différentes actions.</li></ul></p>



<p><ul><li>Par exemple, pour afficher une page de détails d&rsquo;un produit, tu peux ajouter une méthode dans ton contrôleur :</li></ul></p>



<pre class="EnlighterJSRAW" data-enlighter-language="php" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">/** 
 * @Route("/product/{id}", name="product_detail") 
 */ 
public function showProduct($id) 
{ 
    // Logique de traitement pour afficher les détails du produit avec l'ID donné 
}</pre>



<p>Cette méthode est associée à une route dynamique qui contient un paramètre <code>{id}</code>. L&rsquo;ID du produit est passé en tant que paramètre dans la méthode.</p>



<p>En utilisant la gestion des routes et des contrôleurs dans Symfony, tu peux définir facilement les actions correspondantes aux différentes URL de ton application. Les routes et les contrôleurs te permettent de créer des fonctionnalités personnalisées, de traiter les données des utilisateurs et de générer les réponses appropriées.</p>



<p>Dans la prochaine partie de cet article, nous aborderons l&rsquo;ORM (Object-Relational Mapping) dans Symfony, en particulier l&rsquo;utilisation de Doctrine pour interagir avec la base de données et gérer les opérations CRUD.</p>



<h2 class="wp-block-heading">ORM et gestion de la base de données</h2>



<p>Symfony utilise un ORM (Object-Relational Mapping) appelé Doctrine pour simplifier l&rsquo;interaction avec la base de données. Doctrine te permet de travailler avec la base de données en utilisant des objets PHP plutôt que des requêtes SQL brutes, ce qui facilite la manipulation des données et améliore la maintenabilité de ton application.</p>



<p>Voici les principales étapes pour utiliser Doctrine dans Symfony :</p>



<h3 class="wp-block-heading">Configuration de la base de données :</h3>



<p>Dans le fichier <code>config/packages/doctrine.yaml</code>, tu peux spécifier les paramètres de connexion à ta base de données, tels que le type de base de données, l&rsquo;hôte, le nom d&rsquo;utilisateur et le mot de passe.</p>



<p>Symfony prend en charge plusieurs types de bases de données, tels que MySQL, PostgreSQL, SQLite, etc.</p>



<p>Définition des entités :<ul><li>Les entités dans Symfony sont des objets PHP qui représentent les tables de ta base de données. Chaque entité est liée à une table et chaque propriété de l&rsquo;entité correspond à une colonne de la table.Tu peux définir une entité en créant une classe PHP dans le répertoire <code>src/Entity</code>. Par exemple, pour une entité <code>Product</code>, tu peux définir les propriétés de l&rsquo;entité et les annotations associées :</li></ul></p>



<pre class="EnlighterJSRAW" data-enlighter-language="php" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">/**
 * @ORM\Entity
 * @ORM\Table(name="products")
 */ 
class Product 
{ 
    /**
     * @ORM\Id
     * @ORM\GeneratedValue
     * @ORM\Column(type="integer")
     */ 
    private $id; 
    /**
     * @ORM\Column(type="string", length=255)
     */ 
    private $name; 
    // Autres propriétés et méthodes... 
}</pre>



<p>Cette classe <code>Product</code> est annotée avec des annotations Doctrine pour spécifier le nom de la table et les colonnes correspondantes.</p>



<h3 class="wp-block-heading">Utilisation de Doctrine :</h3>



<ul class="wp-block-list">
<li>Une fois que tu as défini tes entités, tu peux utiliser les fonctionnalités de Doctrine pour effectuer des opérations CRUD (Create, Read, Update, Delete) sur la base de données.</li>



<li>Symfony fournit des commandes CLI, telles que <code>doctrine:schema:update</code> et <code>doctrine:fixtures:load</code>, pour créer ou mettre à jour la structure de la base de données à partir de tes entités.</li>



<li>Tu peux également utiliser les méthodes fournies par Doctrine, comme <code>persist()</code>, <code>flush()</code>, <code>find()</code>, etc., pour interagir avec la base de données à partir de tes contrôleurs ou services.</li>
</ul>



<p>En utilisant Doctrine, tu peux manipuler les données de ta base de données de manière orientée objet, sans avoir à écrire de requêtes SQL complexes. Cela facilite la gestion des données et te permet de tirer parti des fonctionnalités avancées de Doctrine, telles que les relations entre entités, les requêtes personnalisées et les migrations de base de données.</p>



<p>Dans la prochaine partie de cet article, nous aborderons les services et l&rsquo;injection de dépendances dans Symfony, qui jouent un rôle clé dans la gestion des dépendances entre les composants de ton application.</p>



<h2 class="wp-block-heading">Les services et l&rsquo;injection de dépendances</h2>



<p>Symfony utilise le concept de services et l&rsquo;injection de dépendances pour gérer les dépendances entre les différents composants de ton application. Cette approche favorise la modularité, la réutilisabilité et la maintenabilité du code.</p>



<p>Voici les principaux concepts liés aux services et à l&rsquo;injection de dépendances dans Symfony :</p>



<h3 class="wp-block-heading">Services :</h3>



<p><ul><li>Un service est une classe qui fournit une fonctionnalité spécifique dans ton application. Il peut s&rsquo;agir d&rsquo;une classe qui interagit avec la base de données, d&rsquo;un gestionnaire de cache, d&rsquo;un service d&rsquo;envoi d&rsquo;e-mails, etc.</li></ul></p>



<p><ul><li>Les services sont configurés dans le fichier <code>config/services.yaml</code> de ton projet Symfony. Tu peux déclarer un service et lui attribuer une classe, des arguments et des options de configuration.</li></ul></p>



<p><ul><li>Par exemple, voici comment tu peux déclarer un service <code>ProductManager</code> qui utilise l&rsquo;entité <code>Product</code> pour gérer les opérations liées aux produits :</li></ul></p>



<pre class="EnlighterJSRAW" data-enlighter-language="php" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">services: 
    App\Service\ProductManager: 
        arguments: 
            - '@doctrine.orm.default_entity_manager' 
        tags: ['app.service']</pre>



<h3 class="wp-block-heading">Injection de dépendances :</h3>



<p><ul><li>L&rsquo;injection de dépendances est un concept clé dans Symfony. Il s&rsquo;agit d&rsquo;une méthode permettant d&rsquo;injecter les dépendances d&rsquo;un objet depuis l&rsquo;extérieur plutôt que de les instancier directement à l&rsquo;intérieur de cet objet.</li></ul></p>



<p><ul><li>Symfony gère automatiquement l&rsquo;injection de dépendances pour les services configurés. Tu peux définir les dépendances d&rsquo;un service en utilisant le type-hinting dans le constructeur ou les méthodes de configuration.</li></ul></p>



<p><ul><li>Par exemple, pour injecter le <code>ProductManager</code> dans un contrôleur, tu peux le déclarer dans le constructeur du contrôleur :</li></ul></p>



<pre class="EnlighterJSRAW" data-enlighter-language="php" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">use App\Service\ProductManager; 
class ProductController extends AbstractController 
{ 
    private $productManager; 

    public function __construct(ProductManager $productManager) 
    { 
        $this->productManager = $productManager; 
    } 
    // Autres actions du contrôleur... 
}</pre>



<p>Symfony détecte automatiquement les dépendances du contrôleur et injecte le service <code>ProductManager</code> lors de l&rsquo;instanciation du contrôleur.</p>



<p>En utilisant les services et l&rsquo;injection de dépendances, tu peux découpler les différents composants de ton application, les rendre plus modulaires et plus faciles à tester. Les services permettent également de partager des fonctionnalités entre différentes parties de ton application, favorisant ainsi la réutilisabilité du code.</p>



<p>Dans la prochaine partie de cet article, nous explorerons les templates et le moteur de rendu Twig, qui te permettent de créer des vues élégantes et dynamiques pour ton application Symfony.</p>



<h2 class="wp-block-heading">Les templates et le moteur de rendu</h2>



<p>Dans Symfony, les templates et le moteur de rendu Twig sont utilisés pour générer et afficher les vues de ton application. Twig est un moteur de template moderne, puissant et flexible, qui simplifie la création de vues élégantes et dynamiques.</p>



<p>Voici comment utiliser les templates et le moteur de rendu Twig dans Symfony :</p>



<h3 class="wp-block-heading">Création de templates :</h3>



<p><ul><li>Les templates sont des fichiers qui contiennent le code HTML combiné avec des balises Twig. Ils sont utilisés pour définir la structure et l&rsquo;apparence de tes vues.</li></ul></p>



<p><ul><li>Les templates sont généralement stockés dans le répertoire <code>templates</code> de ton projet Symfony.</li></ul></p>



<p><ul><li>Par exemple, voici un exemple simple de template Twig qui affiche le nom d&rsquo;un produit :</li></ul></p>



<pre class="EnlighterJSRAW" data-enlighter-language="php" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">&lt;h1>Détails du produit&lt;/h1> 
&lt;p>Nom du produit : {{ product.name }}&lt;/p></pre>



<p>Le code entre les doubles accolades <code>{{ }}</code> est une expression Twig qui sera évaluée et remplacée par la valeur correspondante lors du rendu.</p>



<h3 class="wp-block-heading">Utilisation du moteur de rendu Twig :</h3>



<p><ul><li>Symfony intègre nativement le moteur de rendu Twig, et il est configuré pour être utilisé par défaut dans les vues de ton application.</li></ul></p>



<p><ul><li>Pour utiliser Twig dans un contrôleur, tu peux retourner une réponse qui rend un template Twig. </li></ul></p>



<p><ul><li>Par exemple :</li></ul></p>



<pre class="EnlighterJSRAW" data-enlighter-language="php" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">use Symfony\Component\HttpFoundation\Response; 
use Symfony\Component\Routing\Annotation\Route; 
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController; 
class ProductController extends AbstractController 
{ 
    /**
     * @Route("/product/{id}", name="product_show")
     */ 
    public function showProduct($id) 
    { 
        $product = // Récupérer le produit correspondant à l'ID depuis la base de données 

        return $this->render('product/show.html.twig', [ 
            'product' => $product, 
        ]);
    } 
} </pre>



<p>Dans cet exemple, la méthode <code>showProduct()</code> récupère un produit à partir de l&rsquo;ID fourni et le passe au template <code>product/show.html.twig</code> en tant que variable <code>product</code>. Le rendu du template sera inclus dans la réponse retournée.</p>



<p>Twig offre une multitude de fonctionnalités pour faciliter la création de vues dynamiques, telles que les boucles, les conditions, les filtres, les blocs, l&rsquo;héritage de templates, etc. Tu peux également utiliser des variables, des tableaux et des objets dans tes templates pour afficher des données dynamiques.</p>



<p>En utilisant les templates et le moteur de rendu Twig, tu peux séparer efficacement la logique de présentation de ta logique métier, ce qui rend tes vues plus faciles à maintenir et à modifier.</p>



<p>Dans la prochaine partie de cet article, nous aborderons la sécurité et la gestion des utilisateurs dans Symfony, qui te permettront de protéger ton application et de gérer les autorisations d&rsquo;accès.</p>



<h2 class="wp-block-heading">Sécurité et gestion des utilisateurs</h2>



<p>La sécurité est un aspect crucial lors du développement d&rsquo;applications web. Symfony fournit des fonctionnalités intégrées pour gérer la sécurité et la gestion des utilisateurs de manière efficace.</p>



<p>Voici les principales fonctionnalités de sécurité et de gestion des utilisateurs dans Symfony :</p>



<h3 class="wp-block-heading">Authentification :</h3>



<ul class="wp-block-list">
<li>Symfony offre des mécanismes d&rsquo;authentification flexibles pour vérifier l&rsquo;identité des utilisateurs. Il prend en charge différents types d&rsquo;authentification, tels que l&rsquo;authentification par formulaire, l&rsquo;authentification via des API et l&rsquo;authentification par token.</li>



<li>Tu peux configurer les méthodes d&rsquo;authentification dans le fichier <code>config/packages/security.yaml</code>. Par exemple, pour configurer l&rsquo;authentification par formulaire, tu peux spécifier le chemin vers le formulaire de connexion, la classe d&rsquo;authentification, etc.</li>
</ul>



<h3 class="wp-block-heading">Autorisation :</h3>



<ul class="wp-block-list">
<li>Symfony propose également des fonctionnalités d&rsquo;autorisation pour gérer les permissions et les rôles des utilisateurs. Tu peux définir des règles d&rsquo;autorisation basées sur les rôles ou les attributs spécifiques des utilisateurs.</li>



<li>Les autorisations peuvent être configurées dans le fichier <code>security.yaml</code>. Tu peux spécifier les rôles et les accès autorisés pour chaque rôle.</li>
</ul>



<h3 class="wp-block-heading">Gestion des utilisateurs :</h3>



<ul class="wp-block-list">
<li>Symfony facilite la gestion des utilisateurs, y compris l&rsquo;inscription, la modification des informations personnelles et la gestion des mots de passe.</li>



<li>Tu peux utiliser des bundles tels que FOSUserBundle ou Symfony Security Bundle pour gérer les fonctionnalités de base liées aux utilisateurs.</li>



<li>Ces bundles fournissent des fonctionnalités prêtes à l&#8217;emploi, telles que l&rsquo;enregistrement des utilisateurs, la réinitialisation des mots de passe, l&rsquo;envoi d&rsquo;e-mails de confirmation, etc.</li>
</ul>



<h3 class="wp-block-heading">Protection contre les attaques :</h3>



<ul class="wp-block-list">
<li>Symfony intègre des mesures de sécurité pour protéger ton application contre les attaques courantes, telles que les attaques par injection SQL, les attaques CSRF (Cross-Site Request Forgery), les attaques XSS (Cross-Site Scripting), etc.</li>



<li>Symfony fournit des outils et des pratiques recommandées pour sécuriser ton code, tels que l&rsquo;utilisation de paramètres requêtes, l&rsquo;échappement automatique des sorties Twig, la validation des formulaires, etc.</li>
</ul>



<p>En utilisant les fonctionnalités de sécurité et de gestion des utilisateurs de Symfony, tu peux protéger ton application contre les accès non autorisés et les vulnérabilités de sécurité. Tu as la flexibilité de configurer les méthodes d&rsquo;authentification et les autorisations selon les besoins spécifiques de ton application.</p>



<p>Dans la prochaine partie de cet article, nous aborderons les tests et le déploiement d&rsquo;une application Symfony, qui te permettront de garantir la qualité et de déployer ton application sur un serveur de production.</p>



<h2 class="wp-block-heading">Tests et déploiement</h2>



<p>Les tests et le déploiement sont des étapes cruciales dans le cycle de développement d&rsquo;une application Symfony. Ils garantissent la qualité de ton code et te permettent de déployer ton application sur un serveur de production de manière fiable.</p>



<p>Voici les aspects importants des tests et du déploiement dans Symfony :</p>



<h3 class="wp-block-heading">Tests automatisés :</h3>



<ul class="wp-block-list">
<li>Symfony encourage la mise en place de tests automatisés pour vérifier le bon fonctionnement de ton application. Les tests automatisés aident à détecter les erreurs et les régressions potentielles, et permettent de maintenir la stabilité de ton application.</li>



<li>Symfony prend en charge les tests unitaires, les tests fonctionnels et les tests d&rsquo;intégration. Tu peux utiliser des outils tels que PHPUnit pour les tests unitaires et le composant HTTPFoundation de Symfony pour les tests fonctionnels.</li>



<li>En écrivant des tests, tu peux couvrir les différentes parties de ton application, y compris les contrôleurs, les services et les entités, en vérifiant les résultats attendus et les comportements spécifiques.</li>
</ul>



<h3 class="wp-block-heading">Déploiement sur un serveur de production :</h3>



<ul class="wp-block-list">
<li>Lorsque tu es prêt à déployer ton application Symfony sur un serveur de production, il est important de prendre en compte les bonnes pratiques et les recommandations de Symfony.</li>



<li>Avant le déploiement, assure-toi de configurer correctement les paramètres de production, tels que la gestion des erreurs, les logs, le cache, etc. Cela garantira une exécution optimale de ton application.</li>



<li>Symfony propose également des outils et des méthodes pour faciliter le déploiement, tels que la mise en place de stratégies de déploiement continu, l&rsquo;utilisation de scripts de déploiement (par exemple, avec Symfony Deployer), l&rsquo;utilisation de services d&rsquo;hébergement spécialisés pour Symfony, etc.</li>
</ul>



<h3 class="wp-block-heading">Environnements de développement et de production :</h3>



<ul class="wp-block-list">
<li>Symfony propose un système d&rsquo;environnements pour différencier les configurations spécifiques de développement, de test et de production. Cela te permet d&rsquo;avoir des configurations adaptées à chaque étape du développement et du déploiement.</li>



<li>Tu peux définir des fichiers de configuration spécifiques à chaque environnement (par exemple, <code>config/packages/dev/</code>, <code>config/packages/prod/</code>) et utiliser les variables d&rsquo;environnement pour gérer les paramètres sensibles.</li>
</ul>



<p>En combinant des tests automatisés solides et une méthodologie de déploiement robuste, tu peux garantir la qualité et la fiabilité de ton application Symfony. Les tests automatisés t&rsquo;aident à identifier les problèmes rapidement, tandis que les bonnes pratiques de déploiement te permettent de déployer ton application de manière sûre et efficace.</p>



<p>Dans la dernière partie de cet article, nous récapitulerons les avantages de l&rsquo;utilisation de Symfony en PHP et encouragerons l&rsquo;exploration continue de ses fonctionnalités pour développer des applications web puissantes.</p>



<h2 class="wp-block-heading">Conclusion</h2>



<p>Symfony est un framework PHP puissant et mature, largement utilisé dans le développement d&rsquo;applications web. En utilisant Symfony, tu bénéficies d&rsquo;une structure solide, d&rsquo;une gestion avancée des routes et des contrôleurs, d&rsquo;un ORM efficace, de la gestion des services et de l&rsquo;injection de dépendances, d&rsquo;un moteur de rendu Twig flexible, ainsi que de fonctionnalités intégrées de sécurité et de gestion des utilisateurs.</p>



<p>Les avantages de l&rsquo;utilisation de Symfony en PHP sont nombreux :</p>



<ul class="wp-block-list">
<li>Robustesse et maintenabilité : Symfony propose une structure claire et des conventions de codage qui favorisent la maintenabilité du code et la collaboration entre les développeurs.</li>



<li>Écosystème riche : Symfony dispose d&rsquo;une vaste communauté et d&rsquo;une documentation complète, ce qui facilite l&rsquo;apprentissage et le partage de connaissances.</li>



<li>Modularité et réutilisabilité : Grâce à l&rsquo;utilisation de bundles et de services, Symfony te permet de développer des applications modulaires et réutilisables.</li>



<li>Sécurité avancée : Symfony intègre des fonctionnalités de sécurité solides, telles que l&rsquo;authentification, l&rsquo;autorisation et la protection contre les attaques courantes.</li>



<li>Tests automatisés : Symfony encourage les tests automatisés, ce qui te permet de garantir la qualité de ton code et de prévenir les régressions.</li>



<li>Déploiement fiable : Symfony propose des outils et des recommandations pour faciliter le déploiement de ton application sur un serveur de production.</li>
</ul>



<p>En résumé, Symfony offre un ensemble complet de fonctionnalités et d&rsquo;outils pour développer des applications web robustes et évolutives en PHP. Que tu sois un développeur débutant ou expérimenté, Symfony peut t&rsquo;aider à créer des applications de qualité professionnelle.</p>



<p>Nous avons parcouru les bases de l&rsquo;utilisation de Symfony en PHP, de l&rsquo;installation et de la configuration jusqu&rsquo;au déploiement et aux tests automatisés. N&rsquo;hésite pas à explorer davantage la documentation officielle de Symfony, à suivre des tutoriels et à rejoindre la communauté pour approfondir tes connaissances et tirer le meilleur parti de ce puissant framework.</p>



<p>Bon développement avec Symfony !</p>
<p>L’article <a href="https://programmation.surleweb-france.fr/utilisation-de-symfony-en-php-guide-complet-pour-developper-des-applications-web-robustes/">Utilisation de Symfony en PHP : Guide complet pour développer des applications web robustes</a> est apparu en premier sur <a href="https://programmation.surleweb-france.fr">La programmation sur le web</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://programmation.surleweb-france.fr/utilisation-de-symfony-en-php-guide-complet-pour-developper-des-applications-web-robustes/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">1855</post-id>	</item>
		<item>
		<title>Devenir programmeur freelance en Python et PHP : Guide complet pour démarrer ta carrière</title>
		<link>https://programmation.surleweb-france.fr/devenir-programmeur-freelance-en-python-et-php-guide-complet-pour-demarrer-ta-carriere/</link>
					<comments>https://programmation.surleweb-france.fr/devenir-programmeur-freelance-en-python-et-php-guide-complet-pour-demarrer-ta-carriere/#respond</comments>
		
		<dc:creator><![CDATA[Zigomato]]></dc:creator>
		<pubDate>Mon, 29 May 2023 18:01:15 +0000</pubDate>
				<category><![CDATA[Développement Web]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Programmation]]></category>
		<category><![CDATA[Python]]></category>
		<category><![CDATA[carrière]]></category>
		<category><![CDATA[compétences]]></category>
		<category><![CDATA[conseils]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[plateformes]]></category>
		<category><![CDATA[programmeur freelance]]></category>
		<category><![CDATA[projets]]></category>
		<category><![CDATA[python]]></category>
		<guid isPermaLink="false">https://programmation.surleweb-france.fr/?p=1803</guid>

					<description><![CDATA[<p>Dans cet article, découvre les étapes essentielles pour devenir un programmeur freelance en Python et PHP. Apprends comment développer tes compétences, construire ton portfolio, choisir les bonnes plateformes de freelance et gérer ta carrière avec succès. Avec ces conseils pratiques, tu seras prêt à te lancer dans le monde excitant du freelancing.</p>
<p class="continue-reading-button"> <a class="continue-reading-link" href="https://programmation.surleweb-france.fr/devenir-programmeur-freelance-en-python-et-php-guide-complet-pour-demarrer-ta-carriere/">Continuer la lecture<i class="crycon-right-dir"></i></a></p>
<p>L’article <a href="https://programmation.surleweb-france.fr/devenir-programmeur-freelance-en-python-et-php-guide-complet-pour-demarrer-ta-carriere/">Devenir programmeur freelance en Python et PHP : Guide complet pour démarrer ta carrière</a> est apparu en premier sur <a href="https://programmation.surleweb-france.fr">La programmation sur le web</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<h2 class="wp-block-heading">I. Introduction</h2>



<p>Si tu as une passion pour la programmation et que tu souhaites te lancer en tant que programmeur freelance, tu as fait le bon choix ! Le travail indépendant dans les domaines de Python et PHP offre de nombreuses opportunités intéressantes et flexibles. Avant de plonger dans les détails, il est essentiel de comprendre l&rsquo;importance croissante du freelancing dans l&rsquo;industrie du développement.</p>



<p>Le freelancing permet aux programmeurs de travailler sur des projets variés, d&rsquo;élargir leurs compétences et de choisir leurs clients. Cela offre également la possibilité de travailler à distance, de gérer ton propre emploi du temps et de vivre une vie professionnelle plus autonome.</p>



<p>Pour commencer cette aventure, il est essentiel d&rsquo;acquérir les compétences de base en programmation Python et PHP. Si tu es débutant, ne t&rsquo;inquiète pas, il existe de nombreuses ressources en ligne pour t&rsquo;aider à apprendre les fondamentaux.</p>



<p>Pour débuter avec Python, je te recommande le site officiel de Python (<a href="https://www.python.org/" target="_blank" rel="noreferrer noopener">https://www.python.org/</a>), où tu trouveras une documentation complète, des tutoriels et des exemples de code. Un ouvrage très apprécié est <a href="https://amzn.to/3q55orp" target="_blank" rel="noreferrer noopener">« Apprendre à programmer avec Python » d&rsquo;Eric Matthes</a>.</p>



<p>En ce qui concerne PHP, tu peux consulter le site officiel de PHP (<a href="https://www.php.net/" target="_blank" rel="noreferrer noopener">https://www.php.net/</a>), qui propose également une documentation détaillée et des exemples de code. Pour un apprentissage approfondi, le livre <a href="https://amzn.to/42eRNeF" target="_blank" rel="noreferrer noopener">« PHP et MySQL pour les Nuls » de Janet Valade</a> est une excellente ressource.</p>



<p>Une fois que tu auras acquis les bases, il est temps d&rsquo;approfondir tes connaissances en explorant les fonctionnalités avancées et les bonnes pratiques de programmation.</p>



<p>Dans les chapitres suivants, nous aborderons la manière de construire un portfolio solide pour démontrer tes compétences en Python et PHP. Nous verrons également comment choisir les bonnes plateformes de freelance pour débuter ta carrière et comment trouver des opportunités de travail intéressantes.</p>



<h2 class="wp-block-heading">II. Approfondir tes connaissances</h2>



<p>Maintenant que tu as acquis les bases de la programmation en Python et PHP, il est temps d&rsquo;approfondir tes connaissances pour devenir un programmeur freelance compétent et recherché. Voici quelques étapes que tu peux suivre pour te perfectionner :</p>



<ol class="wp-block-list">
<li>Explore les fonctionnalités avancées : Les langages de programmation offrent de nombreuses fonctionnalités avancées qui peuvent améliorer ton efficacité et ta capacité à résoudre des problèmes complexes. Prends le temps d&rsquo;explorer les bibliothèques et les modules disponibles pour Python et PHP, tels que <a href="https://numpy.org/" target="_blank" rel="noreferrer noopener">NumPy</a>, <a href="https://pandas.pydata.org/" target="_blank" rel="noreferrer noopener">Pandas</a>, <a href="https://flask.palletsprojects.com/" target="_blank" rel="noreferrer noopener">Flask </a>(Python) et <a href="https://symfony.com/" target="_blank" rel="noreferrer noopener">Symfony</a>, <a href="https://codeigniter.com/" target="_blank" rel="noreferrer noopener">CodeIgniter </a>(PHP).</li>



<li>Adopte les bonnes pratiques de programmation : Il est important de développer de bonnes habitudes de programmation dès le début. Apprends les conventions de codage, la structuration du code, la gestion des erreurs et les principes de conception logicielle. Cela te permettra de produire un code propre, lisible et maintenable.</li>



<li>Familiarise-toi avec les frameworks populaires : Les frameworks sont des outils puissants qui accélèrent le processus de développement et fournissent une structure pour tes projets. <a href="https://www.djangoproject.com/" target="_blank" rel="noreferrer noopener">Django </a>(Python) et <a href="https://laravel.com/" target="_blank" rel="noreferrer noopener">Laravel </a>(PHP) sont deux frameworks très répandus et largement utilisés. Consacre du temps à apprendre ces frameworks et à comprendre comment les utiliser pour développer des applications web robustes.</li>



<li>Pratique régulièrement : La pratique est essentielle pour renforcer tes compétences en programmation. Réalise des projets personnels qui te permettent d&rsquo;explorer de nouveaux concepts, de résoudre des problèmes et d&rsquo;appliquer ce que tu as appris. Tu peux également participer à des compétitions de programmation en ligne pour relever des défis et te mesurer à d&rsquo;autres développeurs.</li>



<li>Reste à l&rsquo;affût des nouvelles tendances : Les langages de programmation évoluent constamment, et il est important de rester à jour avec les nouvelles fonctionnalités et les tendances émergentes. Suis des blogs, des forums et des communautés en ligne dédiés à Python et PHP pour te tenir informé des dernières avancées.</li>
</ol>



<p>En investissant du temps dans l&rsquo;approfondissement de tes connaissances en programmation Python et PHP, tu seras en mesure de proposer des solutions plus avancées et de qualité à tes clients en tant que programmeur freelance. Dans le prochain chapitre, nous aborderons la manière de construire un portfolio solide pour démontrer tes compétences.</p>



<h2 class="wp-block-heading">III. Construire un portfolio solide</h2>



<p>Lorsque tu te lances en tant que programmeur freelance en Python et PHP, il est essentiel de construire un portfolio solide qui met en valeur tes compétences et tes réalisations. Un portfolio bien conçu et convaincant joue un rôle crucial pour attirer des clients potentiels. Voici quelques étapes pour créer un portfolio efficace :</p>



<ol class="wp-block-list">
<li>Sélectionne tes meilleurs projets : Choisis soigneusement les projets sur lesquels tu as travaillé et sélectionne ceux qui démontrent le mieux tes compétences en Python et PHP. Opte pour des projets variés qui mettent en évidence différentes facettes de tes capacités. Assure-toi d&rsquo;inclure des descriptions claires de chaque projet, en mettant en évidence les défis que tu as relevés et les solutions que tu as apportées.</li>



<li>Crée un site web ou une plateforme en ligne : Construis un site web ou utilise une plateforme en ligne dédiée pour présenter ton portfolio. Si tu préfères créer ton propre site web, tu peux utiliser des outils de création de sites comme <a href="https://programmation.surleweb-france.fr/developpement-web-les-cms/" target="_blank" rel="noreferrer noopener">WordPress </a>ou des plateformes spécialisées pour les développeurs comme <a href="https://github.com/" target="_blank" rel="noreferrer noopener">GitHub </a>Pages. Assure-toi d&rsquo;avoir un design professionnel, une navigation facile et une mise en valeur de tes projets.</li>



<li>Inclue des démonstrations et des exemples de code : Pour permettre aux clients potentiels d&rsquo;évaluer ton travail, offre des démonstrations ou des captures d&rsquo;écran de tes projets. Si possible, fournis également des liens vers les dépôts <a href="https://github.com/" target="_blank" rel="noreferrer noopener">GitHub </a>ou <a href="https://about.gitlab.com/fr-fr/" target="_blank" rel="noreferrer noopener">GitLab </a>où tu as publié ton code source. Cela montre ta transparence et ta capacité à travailler en équipe.</li>



<li>Ajoute des témoignages et des recommandations : Si tu as travaillé avec des clients précédemment, demande-leur de te fournir des témoignages ou des recommandations que tu peux inclure dans ton portfolio. Les commentaires positifs de clients satisfaits renforcent ta crédibilité et ta réputation en tant que freelance.</li>



<li>Reste à jour : Assure-toi de mettre régulièrement à jour ton portfolio en ajoutant de nouveaux projets et en supprimant ceux qui ne sont plus pertinents. Cela démontre ton engagement continu dans l&rsquo;amélioration de tes compétences et de tes réalisations.</li>
</ol>



<p>N&rsquo;oublie pas de promouvoir ton portfolio sur les réseaux sociaux, les forums et les communautés en ligne pour attirer l&rsquo;attention des clients potentiels. Dans le prochain chapitre, nous explorerons les différentes plateformes de freelance adaptées aux débutants, où tu peux trouver des opportunités de travail intéressantes.</p>



<p>IV. Choisir les plateformes de freelance adaptées</p>



<p>Lorsque tu te lances en tant que programmeur freelance en Python et PHP, choisir les bonnes plateformes de freelance est crucial pour trouver des opportunités de travail intéressantes et développer ta carrière. Voici quelques-unes des plateformes les plus populaires adaptées aux débutants :</p>



<ol class="wp-block-list">
<li><strong>Upwork </strong>(<a href="https://www.upwork.com/" target="_blank" rel="noreferrer noopener">https://www.upwork.com/</a>) : Upwork est l&rsquo;une des plus grandes plateformes de freelance, offrant une vaste gamme de catégories, y compris le développement web en Python et PHP. Tu peux créer un profil, afficher ton portfolio, et postuler à des projets correspondant à tes compétences. Upwork offre une grande visibilité et de nombreuses opportunités de travail.</li>



<li><strong>Freelancer </strong>(<a href="https://www.freelancer.com/" target="_blank" rel="noreferrer noopener">https://www.freelancer.com/</a>) : Freelancer est une plateforme bien établie qui propose des projets dans divers domaines, y compris la programmation. Tu peux créer un profil, participer à des compétitions et enchérir sur des projets. La plateforme utilise un système de notation et de commentaires, ce qui te permet d&rsquo;accumuler des références et de développer ta réputation.</li>



<li><strong>Fiverr </strong>(<a href="https://www.fiverr.com/" target="_blank" rel="noreferrer noopener">https://www.fiverr.com/</a>) : Fiverr est une plateforme populaire pour les microservices, où tu peux créer des « gigs » pour des services spécifiques en programmation Python et PHP. C&rsquo;est une excellente option si tu préfères proposer des services spécifiques plutôt que de travailler sur des projets complets.</li>



<li><strong>Toptal </strong>(<a href="https://www.toptal.com/" target="_blank" rel="noreferrer noopener">https://www.toptal.com/</a>) : Toptal est une plateforme haut de gamme qui se concentre sur les freelances de premier plan. Elle possède un processus de sélection rigoureux pour garantir la qualité des freelances. Si tu as une expérience solide en Python et PHP, Toptal peut être une excellente option pour accéder à des projets de haute qualité.</li>



<li><strong>Guru </strong>(<a href="https://www.guru.com/" target="_blank" rel="noreferrer noopener">https://www.guru.com/</a>) : Guru est une plateforme qui propose des opportunités de travail freelance dans de nombreux domaines, y compris la programmation. Elle offre des fonctionnalités telles que la messagerie en temps réel et la gestion des projets, ce qui facilite la communication avec les clients.</li>
</ol>



<p>Avant de t&rsquo;inscrire sur une plateforme, prends le temps de lire les conditions, les frais associés et les politiques de la plateforme. Assure-toi que la plateforme correspond à tes besoins et à ton style de travail.</p>



<p>En utilisant ces plateformes, tu pourras accéder à une large gamme de projets, trouver des clients potentiels et développer ta réputation en tant que programmeur freelance en Python et PHP.</p>



<p>Dans le prochain chapitre, nous aborderons la manière de trouver des opportunités de travail et comment te démarquer lors de la candidature pour augmenter tes chances de succès.</p>



<h2 class="wp-block-heading">V. Trouver des opportunités de travail</h2>



<p>Maintenant que tu as choisi les plateformes de freelance qui correspondent à tes besoins, il est temps de trouver des opportunités de travail intéressantes en Python et PHP. Voici quelques conseils pour te démarquer et augmenter tes chances de réussite :</p>



<ol class="wp-block-list">
<li>Recherche active de projets : Parcoure les projets disponibles sur les plateformes de freelance que tu as choisies. Utilise les filtres de recherche pour trouver des projets dans ta niche de compétences. Lis attentivement les descriptions de projet et assure-toi que les exigences correspondent à tes compétences. N&rsquo;hésite pas à poser des questions aux clients potentiels pour obtenir des clarifications.</li>



<li>Postule de manière ciblée : Plutôt que de postuler à tous les projets disponibles, concentre-toi sur ceux qui correspondent le mieux à tes compétences et à tes intérêts. Personnalise chaque candidature en soulignant tes expériences pertinentes et en expliquant comment tu peux apporter de la valeur au projet du client. Sois clair, concis et professionnel dans tes communications.</li>



<li>Mets en valeur ton portfolio : Lorsque tu postules à un projet, assure-toi d&rsquo;inclure un lien vers ton portfolio en mettant en évidence les projets pertinents pour le poste. Les clients apprécient de voir des exemples concrets de ton travail, alors assure-toi d&rsquo;ajouter des détails sur tes contributions et les résultats obtenus.</li>



<li>Soigne ton profil : Un profil bien conçu et complet attire l&rsquo;attention des clients potentiels. Assure-toi d&rsquo;avoir une biographie professionnelle, une photo de profil appropriée et des compétences clairement listées. Inclue également tes certificats ou diplômes pertinents pour renforcer ta crédibilité.</li>



<li>Gagne en réputation : Au fur et à mesure que tu réalises des projets, demande à tes clients de te laisser des commentaires et des évaluations. Les évaluations positives renforcent ta réputation et ta crédibilité en tant que freelance. N&rsquo;hésite pas à demander des recommandations écrites que tu peux ajouter à ton portfolio.</li>



<li>Sois réactif et professionnel : Lorsque tu es en contact avec des clients potentiels, réponds rapidement à leurs messages et assure une communication claire et professionnelle. Sois ouvert aux commentaires et aux ajustements, et respecte les délais convenus.</li>



<li>Réseaute et fais connaître tes services : En dehors des plateformes de freelance, participe à des communautés en ligne, des forums et des événements liés à la programmation en Python et PHP. Cela te permettra de rencontrer d&rsquo;autres professionnels du domaine, d&rsquo;apprendre de nouvelles choses et de trouver des opportunités de travail.</li>
</ol>



<p>En appliquant ces stratégies, tu augmenteras tes chances de trouver des opportunités de travail intéressantes en tant que programmeur freelance en Python et PHP. Dans le prochain chapitre, nous aborderons la manière de gérer efficacement ta carrière de freelance pour assurer ton succès à long terme.</p>



<h2 class="wp-block-heading">VI. Gérer efficacement ta carrière de freelance</h2>



<p>Une fois que tu as trouvé des opportunités de travail en tant que programmeur freelance en Python et PHP, il est important de gérer efficacement ta carrière pour assurer ton succès à long terme. Voici quelques conseils pour t&rsquo;aider :</p>



<ol class="wp-block-list">
<li>Établir des tarifs et des contrats justes : Détermine des tarifs qui reflètent la valeur de ton expertise et de ton travail. N&rsquo;hésite pas à faire des recherches sur les tarifs moyens pratiqués dans ton domaine et ajuste tes prix en fonction de ton expérience et de la complexité des projets. Élabore des contrats clairs et détaillés pour chaque projet afin de protéger tes intérêts et d&rsquo;établir des attentes mutuelles avec tes clients.</li>



<li>Maintenir une communication claire : La communication est essentielle pour réussir en tant que freelance. Assure-toi de maintenir une communication régulière et claire avec tes clients. Sois disponible pour répondre à leurs questions, donne des mises à jour sur l&rsquo;avancement du projet et demande des clarifications si nécessaire. Une communication fluide renforce la confiance et la satisfaction du client.</li>



<li>Respecter les délais : Respecte toujours les délais convenus avec tes clients. Livrer tes projets à temps montre ton professionnalisme et ta fiabilité. Si tu rencontres des problèmes ou des retards imprévus, communique immédiatement avec ton client pour trouver des solutions et renégocier les délais si nécessaire.</li>



<li>Cultiver de bonnes relations avec les clients : Développe des relations professionnelles solides avec tes clients. Sois poli, courtois et à l&rsquo;écoute de leurs besoins. Suis les instructions avec précision et cherche à dépasser leurs attentes. Une relation client positive peut conduire à des recommandations et à des opportunités de travail supplémentaires.</li>



<li>Solliciter des commentaires et s&rsquo;améliorer : À la fin de chaque projet, demande à tes clients de te donner leur avis et leurs commentaires sur ton travail. Utilise ces commentaires pour t&rsquo;améliorer continuellement et affiner tes compétences. Assimile les critiques constructives et cherche des moyens d&rsquo;améliorer ta prestation.</li>



<li>Investir dans l&rsquo;apprentissage continu : Les langages de programmation évoluent constamment, alors il est important de rester à jour avec les nouvelles tendances et les nouvelles fonctionnalités. Consacre du temps à l&rsquo;apprentissage continu en suivant des cours en ligne, en lisant des blogs spécialisés et en participant à des formations pertinentes. Plus tu enrichis tes compétences, plus tu seras compétitif sur le marché.</li>



<li>Gérer tes finances et tes obligations fiscales : En tant que freelance, tu es responsable de gérer tes finances et de respecter tes obligations fiscales. Assure-toi de tenir des registres précis de tes revenus et dépenses, et consulte un professionnel ou un comptable pour t&rsquo;assurer de respecter toutes les lois fiscales en vigueur.</li>
</ol>



<p>En mettant en pratique ces conseils, tu pourras gérer efficacement ta carrière de freelance en Python et PHP et construire une réputation solide. N&rsquo;oublie pas de prendre soin de toi, d&rsquo;établir un équilibre entre vie professionnelle et vie personnelle, et de continuer à développer tes compétences pour rester compétitif sur le marché du freelance.</p>



<h2 class="wp-block-heading">VII. Se perfectionner continuellement</h2>



<p>Pour réussir en tant que programmeur freelance en Python et PHP, il est essentiel de se perfectionner continuellement et de rester à jour avec les dernières tendances et les nouvelles fonctionnalités. Voici quelques conseils pour développer tes compétences de manière constante :</p>



<ol class="wp-block-list">
<li>Reste informé : Suis les blogs, les sites d&rsquo;actualités et les communautés en ligne dédiés à la programmation en Python et PHP. Garde un œil sur les nouvelles fonctionnalités, les frameworks émergents, les bonnes pratiques de développement et les avancées technologiques dans ton domaine.</li>



<li>Participe à des formations en ligne : Il existe de nombreuses plateformes en ligne qui proposent des cours et des formations sur Python et PHP. Inscris-toi à des cours pertinents pour renforcer tes compétences et en apprendre davantage sur des sujets spécifiques. Certains sites populaires incluent Udemy, Coursera et LinkedIn Learning.</li>



<li>Expérimente de nouveaux projets : N&rsquo;aie pas peur de sortir de ta zone de confort et d&rsquo;explorer de nouveaux projets. Lance-toi dans des défis personnels, crée des applications ou des modules réutilisables, et explore des domaines connexes tels que l&rsquo;intelligence artificielle, l&rsquo;apprentissage automatique ou la sécurité informatique.</li>



<li>Contribue à des projets open source : Contribuer à des projets open source est un excellent moyen de perfectionner tes compétences tout en collaborant avec d&rsquo;autres développeurs. Recherche des projets open source en Python et PHP qui t&rsquo;intéressent et propose ton aide. Cela te permettra d&rsquo;apprendre des bonnes pratiques, de travailler sur des projets concrets et de te faire remarquer dans la communauté.</li>



<li>Participe à des événements et des conférences : Assiste à des conférences, des webinaires ou des meetups liés à la programmation en Python et PHP. Ces événements offrent des opportunités de réseautage, de partage de connaissances et d&rsquo;apprentissage auprès d&rsquo;experts du domaine. Tu peux découvrir de nouvelles idées, obtenir des conseils précieux et élargir ton réseau professionnel.</li>



<li>Crée ton propre projet : Identifie un besoin ou un problème que tu aimerais résoudre, puis lance-toi dans la création de ton propre projet. Que ce soit une application, un outil ou une bibliothèque, travailler sur ton propre projet te permettra d&rsquo;appliquer tes compétences, de découvrir de nouveaux défis et de montrer ton initiative aux clients potentiels.</li>
</ol>



<p>En investissant du temps et des efforts dans ton développement professionnel continu, tu resteras à la pointe des dernières technologies et des meilleures pratiques en programmation Python et PHP. Cela te permettra de fournir des solutions de haute qualité à tes clients et de rester compétitif dans le domaine du freelance.</p>



<p>Dans la conclusion, nous récapitulerons les étapes clés pour devenir un programmeur freelance prospère en Python et PHP.</p>



<h2 class="wp-block-heading">VIII. Conclusion</h2>



<p>Félicitations ! Tu as parcouru les différentes étapes pour devenir un programmeur freelance en Python et PHP. En récapitulant, voici les points clés à retenir :</p>



<ol class="wp-block-list">
<li>Acquiers les compétences de base en Python et PHP en utilisant des ressources en ligne, des tutoriels et des ouvrages pertinents.</li>



<li>Approfondis tes connaissances en explorant les fonctionnalités avancées, les bonnes pratiques de programmation et les frameworks populaires.</li>



<li>Construis un portfolio solide en sélectionnant tes meilleurs projets et en créant un site web ou une plateforme en ligne pour les présenter.</li>



<li>Choisis les plateformes de freelance adaptées à tes besoins, telles que Upwork, Freelancer ou Fiverr, pour trouver des opportunités de travail.</li>



<li>Recherche activement des projets, personnalise tes candidatures et mets en valeur ton portfolio lors des démarches.</li>



<li>Gère efficacement ta carrière en établissant des tarifs justes, en maintenant une communication claire avec tes clients et en respectant les délais.</li>



<li>Investis dans ton apprentissage continu en restant informé, en participant à des formations, en expérimentant de nouveaux projets et en contribuant à des projets open source.</li>



<li>Développe ton réseau professionnel en participant à des événements et des conférences dans ton domaine.</li>
</ol>



<p>Rappelle-toi que devenir un programmeur freelance prospère demande du temps, de la persévérance et de l&rsquo;engagement. Sois patient, continue à améliorer tes compétences et à construire ta réputation. Avec le temps, tu pourras développer une carrière florissante en tant que programmeur freelance en Python et PHP.</p>



<p>N&rsquo;oublie pas de prendre soin de toi, de maintenir un équilibre entre vie professionnelle et vie personnelle, et de continuer à apprendre et à évoluer dans ce domaine passionnant. Bonne chance dans ta carrière de freelance !</p>
<p>L’article <a href="https://programmation.surleweb-france.fr/devenir-programmeur-freelance-en-python-et-php-guide-complet-pour-demarrer-ta-carriere/">Devenir programmeur freelance en Python et PHP : Guide complet pour démarrer ta carrière</a> est apparu en premier sur <a href="https://programmation.surleweb-france.fr">La programmation sur le web</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://programmation.surleweb-france.fr/devenir-programmeur-freelance-en-python-et-php-guide-complet-pour-demarrer-ta-carriere/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">1803</post-id>	</item>
		<item>
		<title>Développement Web, les CMS</title>
		<link>https://programmation.surleweb-france.fr/developpement-web-les-cms/</link>
					<comments>https://programmation.surleweb-france.fr/developpement-web-les-cms/#respond</comments>
		
		<dc:creator><![CDATA[Zigomato]]></dc:creator>
		<pubDate>Sat, 27 Nov 2021 17:48:00 +0000</pubDate>
				<category><![CDATA[Développement Web]]></category>
		<category><![CDATA[cms]]></category>
		<category><![CDATA[création]]></category>
		<category><![CDATA[html]]></category>
		<category><![CDATA[internet]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[mariadb]]></category>
		<category><![CDATA[mysql]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[sgbdd]]></category>
		<category><![CDATA[sql]]></category>
		<category><![CDATA[wordpress]]></category>
		<category><![CDATA[xhtml]]></category>
		<guid isPermaLink="false">https://programmation.surleweb-france.fr/?p=1238</guid>

					<description><![CDATA[<p>Les CMS te permettront de publier ton site internet sans plus de connaissances mais voyons ce qu'est un CMS</p>
<p class="continue-reading-button"> <a class="continue-reading-link" href="https://programmation.surleweb-france.fr/developpement-web-les-cms/">Continuer la lecture<i class="crycon-right-dir"></i></a></p>
<p>L’article <a href="https://programmation.surleweb-france.fr/developpement-web-les-cms/">Développement Web, les CMS</a> est apparu en premier sur <a href="https://programmation.surleweb-france.fr">La programmation sur le web</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p>A moins d&rsquo;être un féru de PHP et HTML, la mise en place d&rsquo;un site internet peut être fastidieuse, connaissance en langage de programmation, le mise en page, des scripts. Tout ses concepts peuvent être déroutant surtout si tu veux faire un site simple pour évoquer tes recettes de cuisine ou tout autre sujet que tu as envie de partager.</p>



<p>De plus, tu peux rapidement avoir des soucis pour la mise en page ou l&rsquo;intégration d&rsquo;outils si tes connaissances sont limitées. Limitées ne veut pas dire que tu es idiot, des personnes font de la programmation leur métier, ils vont étudier des années afin d&rsquo;acquérir les compétences notamment pour créer et/ou administrer et/ou gérer le contenu d&rsquo;un site internet.</p>



<p>Heureusement, des personnes pleines de bon sens et voulant se simplifier la vie ont créées les <strong><a href="https://fr.wikipedia.org/wiki/Syst%C3%A8me_de_gestion_de_contenu" target="_blank" rel="noreferrer noopener">CMS</a></strong> pour<strong> Content Management System</strong> (pour les anglophiles) ou <strong>Système de Gestion de Contenu</strong> (SGC pour les francophiles !!!).</p>



<h2 class="wp-block-heading">CMS, c&rsquo;est quoi ?</h2>



<p>Un CMS est un système de gestion de contenu, il va permettre de mettre à disposition un ensemble d&rsquo;outils pour publier et gérer du contenu que ce soit la mise en page avec bien souvent des thèmes à foison mais aussi pour l&rsquo;administration de la base de données (<a href="https://www.lemagit.fr/definition/Systeme-de-gestion-de-base-de-donnees-distribuees-SGBDD" target="_blank" rel="noreferrer noopener">SGBDD</a>), les actions sur celle-ci seront gérées par le CMS.</p>



<p>Les CMS vont également fournir (dans la majorité des cas), une gestion des utilisateurs que ce soit en tant qu&rsquo;administrateur, auteur ou lecteur avec des droits qui leur seront propres.</p>



<p>Parmi les CMS les plus connus, on va retrouver :</p>



<ul class="wp-block-list"><li><a href="https://wordpress.com/" target="_blank" rel="noreferrer noopener">WordPress</a></li><li><a href="https://www.prestashop.com/fr" target="_blank" rel="noreferrer noopener">Prestashop</a></li><li><a href="https://www.joomla.fr/" target="_blank" rel="noreferrer noopener">Joomla</a></li><li><a href="https://www.drupal.fr/" target="_blank" rel="noreferrer noopener">Drupal</a></li><li><a href="https://magento.com/" target="_blank" rel="noreferrer noopener">Magento</a></li></ul>



<p>Bien que ce sont tous des systèmes de gestion de contenu, ils n&rsquo;ont pas tous le même objectif, WordPress sera plus orienté blog facile à mettre en œuvre avec l&rsquo;intégration de plugins divers et variés (y compris pour y ajouter une petite plateforme d&rsquo;e-commerce) alors que Magento sera bien plus orienté e-commerce.</p>



<h2 class="wp-block-heading">Plus en détails</h2>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p>Cette partie n&rsquo;est pas présente pour te dégouter, cela reste très intéressant à connaître, elle est simplement faite pour te montrer comment un CMS peut être utile.</p></blockquote>



<p>Quelque soit le type de site internet que nous voulons concevoir, nous allons avoir besoin de compétences dans différents domaines. Pour la mise en page d&rsquo;un site, qu&rsquo;il soit statique (avec des pages qui ne se modifieront pas une fois chargées) ou bien dynamique (avec des pages ayant une interaction avec l&rsquo;utilisateur même si celui-ci n&rsquo;en a pas conscience).</p>



<p>Vous allez avoir donc besoin de connaître au moins le <a href="https://www.boureliou.com/cnam/xhtml/xhtml-01-xhtml-definition.html" target="_blank" rel="noreferrer noopener">XHTML </a>qui est un langage de description avec des balises :</p>



<pre class="EnlighterJSRAW" data-enlighter-language="html" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">&lt;!DOCTYPE html>
&lt;html>
    &lt;head>
        &lt;meta charset="utf-8" />
        &lt;title>Mon blog&lt;/title>
        &lt;link href="style.css" rel="stylesheet" /> 
    &lt;/head>
        
    &lt;body>
        &lt;h1>Mon super blog !&lt;/h1>
&lt;p>Derniers billets du blog :&lt;/p>


    &lt;div class="news">
        &lt;h3>
            Le PHP à la conquête du monde !            &lt;em>le 20/09/2020 à 19h38min49s&lt;/em>
        &lt;/h3>
        
        &lt;p>
            C'est officiel, l'éléPHPant a annoncé à la radio  hier soir &amp;quot;J'ai l'intention de conquérir le monde&amp;quot;.&lt;br />
Il a en outre précisé que le monde serait serait à sa botte en moins de temps qu'il n'en fallait pour dire &amp;quot;éléPHPant. Pas dur, ceci dit entre nous ...            &lt;br />
            &lt;em>&lt;a href="index.php?action=post&amp;amp;id=1">Commentaires&lt;/a>&lt;/em>
        &lt;/p>
    &lt;/div>
    &lt;div class="news">
        &lt;h3>
            Bienvenu sur mon blog !            &lt;em>le 18/09/2020 à 10h12min00s&lt;/em>
        &lt;/h3>
        
        &lt;p>
            Je vous souhaite à toutes et à tous la bienvenue  sur mon blog qui parlera de ... PHP, bien sûr !            &lt;br />
            &lt;em>&lt;a href="index.php?action=post&amp;amp;id=2">Commentaires&lt;/a>&lt;/em>
        &lt;/p>
    &lt;/div>
    &lt;/body>
&lt;/html></pre>



<p>Cette page aura le rendu suivant dans votre navigateur :</p>



<div class="wp-block-image"><figure class="aligncenter size-full"><img fetchpriority="high" decoding="async" width="933" height="329" src="//i0.wp.com/programmation.surleweb-france.fr/wp-content/uploads/2021/11/image-32.png" alt="" class="wp-image-1258" srcset="https://i0.wp.com/programmation.surleweb-france.fr/wp-content/uploads/2021/11/image-32.png?w=933&amp;ssl=1 933w, https://i0.wp.com/programmation.surleweb-france.fr/wp-content/uploads/2021/11/image-32.png?resize=300%2C106&amp;ssl=1 300w, https://i0.wp.com/programmation.surleweb-france.fr/wp-content/uploads/2021/11/image-32.png?resize=768%2C271&amp;ssl=1 768w, https://i0.wp.com/programmation.surleweb-france.fr/wp-content/uploads/2021/11/image-32.png?resize=150%2C53&amp;ssl=1 150w" sizes="(max-width: 900px) 100vw, 900px" /><figcaption>Exemple en ayant suivi un cours sur <a href="https://openclassrooms.com/fr/courses/918836-concevez-votre-site-web-avec-php-et-mysql" target="_blank" rel="noreferrer noopener">openclassroom</a></figcaption></figure></div>



<p>Pas très beau, n&rsquo;est-ce pas ?</p>



<p>Pour lui donner un peu plus de forme, nous devons inclure du CSS. Le CSS permettra de faire la mise en forme des balises utilisées dans le code XHTML. Sans chercher à réaliser quoi que ce soit, voici un exemple en utilisant le code HTML précédent :</p>



<pre class="EnlighterJSRAW" data-enlighter-language="css" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">body{
  background-color: green;
  margin: auto
}
h1, h2, h3{
  text-align: center;
}
h1{
  font-size: 50px;
  color: red;
}
h2{
  font-size: 40px;
}
h3{
  font-size: 30px;
}</pre>



<p>Cela donnera un rendu (moche) de ce type :</p>



<div class="wp-block-image"><figure class="aligncenter size-large is-resized"><img decoding="async" src="//i0.wp.com/programmation.surleweb-france.fr/wp-content/uploads/2021/11/image-33-1024x356.png" alt="" class="wp-image-1259" width="498" height="173" srcset="https://i0.wp.com/programmation.surleweb-france.fr/wp-content/uploads/2021/11/image-33.png?resize=1024%2C356&amp;ssl=1 1024w, https://i0.wp.com/programmation.surleweb-france.fr/wp-content/uploads/2021/11/image-33.png?resize=300%2C104&amp;ssl=1 300w, https://i0.wp.com/programmation.surleweb-france.fr/wp-content/uploads/2021/11/image-33.png?resize=768%2C267&amp;ssl=1 768w, https://i0.wp.com/programmation.surleweb-france.fr/wp-content/uploads/2021/11/image-33.png?resize=150%2C52&amp;ssl=1 150w, https://i0.wp.com/programmation.surleweb-france.fr/wp-content/uploads/2021/11/image-33.png?resize=1180%2C410&amp;ssl=1 1180w, https://i0.wp.com/programmation.surleweb-france.fr/wp-content/uploads/2021/11/image-33.png?w=1366&amp;ssl=1 1366w" sizes="(max-width: 498px) 100vw, 498px" /></figure></div>



<p>J&rsquo;espère que malgré la pauvreté de cet exemple, tu comprends que les connaissances pour écrire son site sont importantes.</p>



<p>Maintenant, si tu veux en plus ajouter du dynamisme à ta page, tu auras besoin d&rsquo;un langage de programmation, par exemple le <a href="https://www.php.net/manual/fr/intro-whatis.php#:~:text=PHP%20(officiellement%2C%20ce%20sigle%20est,le%20d%C3%A9veloppement%20d'applications%20web." target="_blank" rel="noreferrer noopener">PHP </a>qui sera du côté serveur, le code HTML pourra être différent en fonction de l&rsquo;internaute mais une fois la page chargée, le code ne bougera plus. Pour faire simple, si tu veux simplement créer un espace membre pour afficher le nom de l&rsquo;internaute qu&rsquo;il aura préalablement enregistrer, sur ton serveur, tu devras écrire les lignes pour :</p>



<ul class="wp-block-list"><li>créer un compte</li><li>se connecter au compte</li><li>afficher les données liées au compte</li></ul>



<p>L&rsquo;exemple suivant, provient du site <a href="https://waytolearnx.com/2020/02/creer-un-espace-membre-avec-administration-en-php-et-mysql.html" target="_blank" rel="noreferrer noopener">Waytolearnx.com</a> :</p>



<pre class="EnlighterJSRAW" data-enlighter-language="php" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">&lt;!DOCTYPE html>
&lt;html>
&lt;head>
&lt;link rel="stylesheet" href="style.css" />
&lt;/head>
&lt;body>
&lt;?php
require('config.php');

if (isset($_REQUEST['username'], $_REQUEST['email'], $_REQUEST['password'])){
  // récupérer le nom d'utilisateur 
  $username = stripslashes($_REQUEST['username']);
  $username = mysqli_real_escape_string($conn, $username); 
  // récupérer l'email 
  $email = stripslashes($_REQUEST['email']);
  $email = mysqli_real_escape_string($conn, $email);
  // récupérer le mot de passe 
  $password = stripslashes($_REQUEST['password']);
  $password = mysqli_real_escape_string($conn, $password);
  
  $query = "INSERT into `users` (username, email, type, password)
        VALUES ('$username', '$email', 'user', '".hash('sha256', $password)."')";
  $res = mysqli_query($conn, $query);

    if($res){
       echo "&lt;div class='sucess'>
             &lt;h3>Vous êtes inscrit avec succès.&lt;/h3>
             &lt;p>Cliquez ici pour vous &lt;a href='login.php'>connecter&lt;/a>&lt;/p>
       &lt;/div>";
    }
}else{
?>
&lt;form class="box" action="" method="post">
  &lt;h1 class="box-logo box-title">
    &lt;a href="https://waytolearnx.com/">WayToLearnX.com&lt;/a>
  &lt;/h1>
    &lt;h1 class="box-title">S'inscrire&lt;/h1>
  &lt;input type="text" class="box-input" name="username" 
  placeholder="Nom d'utilisateur" required />
  
    &lt;input type="text" class="box-input" name="email" 
  placeholder="Email" required />
  
    &lt;input type="password" class="box-input" name="password" 
  placeholder="Mot de passe" required />
  
    &lt;input type="submit" name="submit" 
  value="S'inscrire" class="box-button" />
  
    &lt;p class="box-register">Déjà inscrit? 
  &lt;a href="login.php">Connectez-vous ici&lt;/a>&lt;/p>
&lt;/form>
&lt;?php } ?>
&lt;/body>
&lt;/html></pre>



<p>Pour dynamiser ta page sans la recharger, tu pourras aussi utiliser le <a href="https://developer.mozilla.org/fr/docs/Learn/JavaScript/First_steps/What_is_JavaScript" target="_blank" rel="noreferrer noopener">javascript</a>, il s&rsquo;agit d&rsquo;un autre langage de programmation qui peut être directement utilisé dans ton navigateur sans avoir à recharger la page, voici un exemple provenant de <a href="http://www.outils-web.com/script-javascript/boite-de-news-3/" target="_blank" rel="noreferrer noopener">Outils-web</a> :</p>



<pre class="EnlighterJSRAW" data-enlighter-language="js" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">&lt;script language="JavaScript1.2">
/*
Source :  http://www.editeurjavascript.com
 Adaptation : http://www.outils-web.com
 */
/*dimensions de la box*/
ejs_scroll_largeur = 200;
ejs_scroll_hauteur = 100;
/*couleur du fond de la box*/
ejs_scroll_bgcolor = '#DDD';
/* chemin de l'image de fond */
ejs_scroll_background = "";
/* temps en secondes */
ejs_scroll_pause_seconde = 3;

ejs_scroll_message = new Array;
/* placez vos liens et messages ici*/
ejs_scroll_message[0]='&lt;a href="lien 1" CLASS=ejs_scroll>message 1&lt;/a>';
ejs_scroll_message[1]='&lt;a href="lien 2" CLASS=ejs_scroll>message 2&lt;/a>';
ejs_scroll_message[2]='&lt;a href="lien 3" CLASS=ejs_scroll>message 3&lt;/a>';
function d(texte)
	{document.write(texte);}
	d('&lt;DIV ID=ejs_scroll_relativ STYLE="position:relative;width:'+ejs_scroll_largeur+';height:'+ejs_scroll_hauteur+';background-color:'+ejs_scroll_bgcolor+';background-image:url('+ejs_scroll_background+')">');
	d('&lt;DIV ID=ejs_scroll_cadre STYLE="position:absolute;width:'+(ejs_scroll_largeur-8)+';height:'+(ejs_scroll_hauteur-8)+';top:4;left:4;clip:rect(0 '+(ejs_scroll_largeur-8)+' '+(ejs_scroll_hauteur-8)+' 0)">');
	d('&lt;div id=ejs_scroller_1 style="position:absolute;width:'+(ejs_scroll_largeur-8)+';left:0;top:0;" CLASS=ejs_scroll>'+ejs_scroll_message[0]+'&lt;/DIV>');
	d('&lt;div id=ejs_scroller_2 style="position:absolute;width:'+(ejs_scroll_largeur-8)+';left:0;top:'+ejs_scroll_hauteur+';" CLASS=ejs_scroll>'+ejs_scroll_message[1]+'&lt;/DIV>');
d('&lt;/DIV>&lt;/DIV>');

ejs_scroll_mode =1;
ejs_scroll_actuel = 0;
/* NE PAS MODIFIER*/
function ejs_scroll_start()
	{if(ejs_scroll_mode == 1)
		{ejs_scroller_haut = "ejs_scroller_1";
		ejs_scroller_bas = "ejs_scroller_2";
		ejs_scroll_mode = 0;}
	else
		{ejs_scroller_bas = "ejs_scroller_1";
		ejs_scroller_haut = "ejs_scroller_2";
		ejs_scroll_mode = 1;}
	ejs_scroll_nb_message = ejs_scroll_message.length-1;
	if(ejs_scroll_actuel == ejs_scroll_nb_message)
		ejs_scroll_suivant = 0;
	else
		ejs_scroll_suivant = ejs_scroll_actuel+1;
	if(document.getElementById)
		document.getElementById(ejs_scroller_bas).innerHTML = ejs_scroll_message[ejs_scroll_suivant];
	ejs_scroll_top = 0;
	if(document.getElementById)
		setTimeout("ejs_scroll_action()",ejs_scroll_pause_seconde*1000)	}
function ejs_scroll_action()
	{ejs_scroll_top -= 1;
	document.getElementById(ejs_scroller_haut).style.top = ejs_scroll_top;
	document.getElementById(ejs_scroller_bas).style.top = ejs_scroll_top+ejs_scroll_hauteur;
	if((ejs_scroll_top+ejs_scroll_hauteur) > 0)
		setTimeout("ejs_scroll_action()",10)
	else
		ejs_scroll_stop()}
function ejs_scroll_stop()
	{ejs_scroll_actuel = ejs_scroll_suivant;
	ejs_scroll_start()}
window.onload = ejs_scroll_start;</pre>



<p>Pour finir cette partie, en reprenant un espace membre, tu auras besoin d&rsquo;un base de données et de faire des requêtes pour lire des données s&rsquo;y trouvant ou en inscrire de nouvelles, tu utiliseras certainement le langage <a href="https://sql.sh/" target="_blank" rel="noreferrer noopener">SQL </a>(oui encore un nouveau). Pour cela, tu auras besoin d&rsquo;un <a href="https://www.lemagit.fr/definition/Systeme-de-gestion-de-base-de-donnees-distribuees-SGBDD" target="_blank" rel="noreferrer noopener">SGBDD </a>comme <a href="https://mariadb.org/" target="_blank" rel="noreferrer noopener">MariaDB </a>ou bien <a href="https://www.mysql.com/fr/" target="_blank" rel="noreferrer noopener">MySQL </a>:</p>



<pre class="EnlighterJSRAW" data-enlighter-language="sql" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">INSERT INTO client (prenom, nom, ville, age)
 VALUES
 ('Rébecca', 'Armand', 'Saint-Didier-des-Bois', 24),
 ('Aimée', 'Hebert', 'Marigny-le-Châtel', 36),
 ('Marielle', 'Ribeiro', 'Maillères', 27),
 ('Hilaire', 'Savary', 'Conie-Molitard', 58);</pre>



<h2 class="wp-block-heading">Et alors ? Un CMS ?</h2>



<p>Maintenant que tu as vu les connaissances (minimum) à devoir acquérir, tu comprends que pour mettre en ligne tes pages pour simplement les partager sans faire de toi un <a href="https://www.youtube.com/watch?v=rlarCLhzfoU&amp;ab_channel=michel2i" target="_blank" rel="noreferrer noopener">ingénieur informaticien</a>, il sera plus simple d&rsquo;utiliser un CMS qui te donnera tous les outils pour publier ton site.</p>



<p>Si l&rsquo;on prend l&rsquo;interface de WordPress, tu auras accès (via ton navigateur) à ce genre de page :</p>



<div class="wp-block-image"><figure class="aligncenter size-large"><img decoding="async" width="1024" height="401" src="//i1.wp.com/programmation.surleweb-france.fr/wp-content/uploads/2021/11/image-34-1024x401.png" alt="" class="wp-image-1261" srcset="https://i0.wp.com/programmation.surleweb-france.fr/wp-content/uploads/2021/11/image-34.png?resize=1024%2C401&amp;ssl=1 1024w, https://i0.wp.com/programmation.surleweb-france.fr/wp-content/uploads/2021/11/image-34.png?resize=300%2C117&amp;ssl=1 300w, https://i0.wp.com/programmation.surleweb-france.fr/wp-content/uploads/2021/11/image-34.png?resize=768%2C300&amp;ssl=1 768w, https://i0.wp.com/programmation.surleweb-france.fr/wp-content/uploads/2021/11/image-34.png?resize=150%2C59&amp;ssl=1 150w, https://i0.wp.com/programmation.surleweb-france.fr/wp-content/uploads/2021/11/image-34.png?w=1263&amp;ssl=1 1263w" sizes="(max-width: 900px) 100vw, 900px" /><figcaption>Page d&rsquo;accueil</figcaption></figure></div>



<div class="wp-block-image"><figure class="aligncenter size-large"><img loading="lazy" decoding="async" width="1024" height="356" src="//i1.wp.com/programmation.surleweb-france.fr/wp-content/uploads/2021/11/image-35-1024x356.png" alt="" class="wp-image-1263" srcset="https://i0.wp.com/programmation.surleweb-france.fr/wp-content/uploads/2021/11/image-35.png?resize=1024%2C356&amp;ssl=1 1024w, https://i0.wp.com/programmation.surleweb-france.fr/wp-content/uploads/2021/11/image-35.png?resize=300%2C104&amp;ssl=1 300w, https://i0.wp.com/programmation.surleweb-france.fr/wp-content/uploads/2021/11/image-35.png?resize=768%2C267&amp;ssl=1 768w, https://i0.wp.com/programmation.surleweb-france.fr/wp-content/uploads/2021/11/image-35.png?resize=150%2C52&amp;ssl=1 150w, https://i0.wp.com/programmation.surleweb-france.fr/wp-content/uploads/2021/11/image-35.png?resize=1180%2C410&amp;ssl=1 1180w, https://i0.wp.com/programmation.surleweb-france.fr/wp-content/uploads/2021/11/image-35.png?w=1362&amp;ssl=1 1362w" sizes="auto, (max-width: 900px) 100vw, 900px" /><figcaption>Création d&rsquo;un article</figcaption></figure></div>



<p>WordPress se chargera de mettre en base de données tes articles ainsi que la mise en page grâce à l&rsquo;ajout de thème et de plugin.</p>



<p>Pour ce qui est du rendu, je t&rsquo;invite de finir la lecture pour voir les résultats possibles.</p>



<h2 class="wp-block-heading">Quelques exemples</h2>



<h3 class="wp-block-heading">Site WordPress</h3>



<p>Voici quelques sites utilisant les différentes solutions :</p>



<h4 class="wp-block-heading"><a href="https://thewaltdisneycompany.com/" target="_blank" rel="noreferrer noopener">Walt Disney Company</a></h4>



<div class="wp-block-image"><figure class="aligncenter size-large"><img loading="lazy" decoding="async" width="1024" height="476" src="//i3.wp.com/programmation.surleweb-france.fr/wp-content/uploads/2021/11/image-28-1024x476.png" alt="" class="wp-image-1239" srcset="https://i0.wp.com/programmation.surleweb-france.fr/wp-content/uploads/2021/11/image-28.png?resize=1024%2C476&amp;ssl=1 1024w, https://i0.wp.com/programmation.surleweb-france.fr/wp-content/uploads/2021/11/image-28.png?resize=300%2C139&amp;ssl=1 300w, https://i0.wp.com/programmation.surleweb-france.fr/wp-content/uploads/2021/11/image-28.png?resize=768%2C357&amp;ssl=1 768w, https://i0.wp.com/programmation.surleweb-france.fr/wp-content/uploads/2021/11/image-28.png?resize=150%2C70&amp;ssl=1 150w, https://i0.wp.com/programmation.surleweb-france.fr/wp-content/uploads/2021/11/image-28.png?w=1347&amp;ssl=1 1347w" sizes="auto, (max-width: 900px) 100vw, 900px" /></figure></div>



<h4 class="wp-block-heading"><a href="https://news.microsoft.com/" target="_blank" rel="noreferrer noopener">News Microsoft</a></h4>



<div class="wp-block-image"><figure class="aligncenter size-large"><img loading="lazy" decoding="async" width="1024" height="472" src="//i1.wp.com/programmation.surleweb-france.fr/wp-content/uploads/2021/11/image-29-1024x472.png" alt="" class="wp-image-1240" srcset="https://i0.wp.com/programmation.surleweb-france.fr/wp-content/uploads/2021/11/image-29.png?resize=1024%2C472&amp;ssl=1 1024w, https://i0.wp.com/programmation.surleweb-france.fr/wp-content/uploads/2021/11/image-29.png?resize=300%2C138&amp;ssl=1 300w, https://i0.wp.com/programmation.surleweb-france.fr/wp-content/uploads/2021/11/image-29.png?resize=768%2C354&amp;ssl=1 768w, https://i0.wp.com/programmation.surleweb-france.fr/wp-content/uploads/2021/11/image-29.png?resize=150%2C69&amp;ssl=1 150w, https://i0.wp.com/programmation.surleweb-france.fr/wp-content/uploads/2021/11/image-29.png?w=1353&amp;ssl=1 1353w" sizes="auto, (max-width: 900px) 100vw, 900px" /></figure></div>



<h3 class="wp-block-heading">Site Prestashop</h3>



<h4 class="wp-block-heading"><a href="https://www.leslipfrancais.fr/" target="_blank" rel="noreferrer noopener">Le slip français</a></h4>



<div class="wp-block-image"><figure class="aligncenter size-large"><img loading="lazy" decoding="async" width="1024" height="455" src="//i0.wp.com/programmation.surleweb-france.fr/wp-content/uploads/2021/11/image-30-1024x455.png" alt="" class="wp-image-1251" srcset="https://i0.wp.com/programmation.surleweb-france.fr/wp-content/uploads/2021/11/image-30.png?resize=1024%2C455&amp;ssl=1 1024w, https://i0.wp.com/programmation.surleweb-france.fr/wp-content/uploads/2021/11/image-30.png?resize=300%2C133&amp;ssl=1 300w, https://i0.wp.com/programmation.surleweb-france.fr/wp-content/uploads/2021/11/image-30.png?resize=768%2C341&amp;ssl=1 768w, https://i0.wp.com/programmation.surleweb-france.fr/wp-content/uploads/2021/11/image-30.png?resize=150%2C67&amp;ssl=1 150w, https://i0.wp.com/programmation.surleweb-france.fr/wp-content/uploads/2021/11/image-30.png?w=1349&amp;ssl=1 1349w" sizes="auto, (max-width: 900px) 100vw, 900px" /></figure></div>



<h4 class="wp-block-heading"><a href="https://www.naturabox.com/" target="_blank" rel="noreferrer noopener">Naturabox</a></h4>



<div class="wp-block-image"><figure class="aligncenter size-large"><img loading="lazy" decoding="async" width="1024" height="475" src="//i2.wp.com/programmation.surleweb-france.fr/wp-content/uploads/2021/11/image-31-1024x475.png" alt="" class="wp-image-1252" srcset="https://i0.wp.com/programmation.surleweb-france.fr/wp-content/uploads/2021/11/image-31.png?resize=1024%2C475&amp;ssl=1 1024w, https://i0.wp.com/programmation.surleweb-france.fr/wp-content/uploads/2021/11/image-31.png?resize=300%2C139&amp;ssl=1 300w, https://i0.wp.com/programmation.surleweb-france.fr/wp-content/uploads/2021/11/image-31.png?resize=768%2C356&amp;ssl=1 768w, https://i0.wp.com/programmation.surleweb-france.fr/wp-content/uploads/2021/11/image-31.png?resize=150%2C70&amp;ssl=1 150w, https://i0.wp.com/programmation.surleweb-france.fr/wp-content/uploads/2021/11/image-31.png?w=1353&amp;ssl=1 1353w" sizes="auto, (max-width: 900px) 100vw, 900px" /></figure></div>



<p>Je pourrais également faire de même pour l&rsquo;ensemble des CMS, mais tu as saisi l&rsquo;idée. Ces 5 solutions sont les plus répandues.</p>



<h2 class="wp-block-heading">Conclusion</h2>



<p>J&rsquo;espère ne pas t&rsquo;avoir détourner de l&rsquo;apprentissage des connaissances utiles pour la création d&rsquo;un site internet mais simplement t&rsquo;avoir montré que la création d&rsquo;un site peut être simple même pour une personne ne possédant de connaissance en langage informatique.</p>
<p>L’article <a href="https://programmation.surleweb-france.fr/developpement-web-les-cms/">Développement Web, les CMS</a> est apparu en premier sur <a href="https://programmation.surleweb-france.fr">La programmation sur le web</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://programmation.surleweb-france.fr/developpement-web-les-cms/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">1238</post-id>	</item>
		<item>
		<title>PHP, envoyer des mails avec PHPMailer</title>
		<link>https://programmation.surleweb-france.fr/php-envoyer-des-mails-avec-phpmailer/</link>
					<comments>https://programmation.surleweb-france.fr/php-envoyer-des-mails-avec-phpmailer/#respond</comments>
		
		<dc:creator><![CDATA[Zigomato]]></dc:creator>
		<pubDate>Sun, 30 May 2021 06:00:00 +0000</pubDate>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[adresse]]></category>
		<category><![CDATA[diffusion]]></category>
		<category><![CDATA[email]]></category>
		<category><![CDATA[envoi]]></category>
		<category><![CDATA[mail]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[PHPMailer]]></category>
		<guid isPermaLink="false">https://programmation.surleweb-france.fr/?p=1024</guid>

					<description><![CDATA[<p>Comment envoyer des mails rapidement sans trop de configuration en PHP en utilisant la librairie PHPMailer en quelques minutes</p>
<p class="continue-reading-button"> <a class="continue-reading-link" href="https://programmation.surleweb-france.fr/php-envoyer-des-mails-avec-phpmailer/">Continuer la lecture<i class="crycon-right-dir"></i></a></p>
<p>L’article <a href="https://programmation.surleweb-france.fr/php-envoyer-des-mails-avec-phpmailer/">PHP, envoyer des mails avec PHPMailer</a> est apparu en premier sur <a href="https://programmation.surleweb-france.fr">La programmation sur le web</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p>Que ce soit pour tenir informer les inscrits à une newsletter ou bien notifier les utilisateurs de son site d&rsquo;une information, l&rsquo;envoi de mail peut rapidement devenir incontournable. Il est bien sûr possible d&rsquo;installer un serveur de messagerie mais si le volume de mail à envoyer n&rsquo;est pas énorme et si tu disposes d&rsquo;une adresse mail chez un fournisseur, tu peux utiliser la librairie PHPMailer qui te simplifiera l&rsquo;envoi de mail.</p>



<p>J&rsquo;ai déjà abordé l&rsquo;envoi de mail mais en python sur <a href="https://programmation.surleweb-france.fr/python-envoyer-un-mail/" target="_blank" rel="noreferrer noopener">cette page</a>.</p>



<p>Avant de commencer, tu devras avoir installé un serveur web complet avec PHP, tu peux le faire en suivant <a href="https://programmation.surleweb-france.fr/installer-serveur-web-complet/" target="_blank" rel="noreferrer noopener">ce lien</a>.</p>



<h2 class="wp-block-heading">Installation de PHPMailer</h2>



<p>Il n&rsquo;y a pas d&rsquo;installation à proprement parler, tu devras copier le dossier dans le dossier de ton site ou application, soit en le déposant directement dans le dossier (en local ou via FTP), pour cela, tu peux le télécharger ici : <a href="https://github.com/PHPMailer/PHPMailer/archive/refs/heads/master.zip" target="_blank" rel="noreferrer noopener">PHPMailer</a>.</p>



<p>Tu peux utiliser composer, dans ce cas, je te laisse suivre les étapes disponibles sur le <a href="https://github.com/PHPMailer/PHPMailer" target="_blank" rel="noreferrer noopener">dépôt</a>.</p>



<p>Sur Ubuntu Server (en mode console), en te plaçant dans le dossier, tu peux faire :</p>



<pre class="EnlighterJSRAW" data-enlighter-language="shell" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">git clone https://github.com/PHPMailer/PHPMailer.git</pre>



<p>L&rsquo;installation est finie.</p>



<h2 class="wp-block-heading">Envoi d&rsquo;un mail</h2>



<p>Passons directement à l&rsquo;envoi du mail, pour cela, tu auras besoin :</p>



<ul class="wp-block-list"><li>une adresse mail</li><li>le mot de passe</li><li>l&rsquo;adresse du serveur smtp et le port de ce serveur</li></ul>



<p>Voici la liste des différents serveurs SMTP (vu <a href="https://www.serversmtp.com/fr/liste-serveur-smtp/" target="_blank" rel="noreferrer noopener">ici</a>) :</p>



<figure class="wp-block-table"><table><tbody><tr><td><strong>9 Telecom</strong></td><td>Neuf.fr</td><td>smtp.neuf.fr</td></tr><tr><td><strong>Alice</strong></td><td>Aliceadsl.fr</td><td>smtp.aliceadsl.fr</td></tr><tr><td><strong>AOL</strong></td><td>Aol.com</td><td>smtp.aol.com</td></tr><tr><td><strong>AT&amp;T</strong></td><td>Att.net</td><td>outbound.att.net</td></tr><tr><td><strong>Bluewin</strong></td><td>Bluewin.ch</td><td>smtpauths.bluewin.ch</td></tr><tr><td><strong>Bouygtel</strong></td><td>Bouygtel.fr</td><td>smtp.bouygtel.fr</td></tr><tr><td><strong>Club Internet</strong></td><td>Club-internet.fr</td><td>mail.club-internet.fr</td></tr><tr><td><strong>Free</strong></td><td>Free.fr</td><td>smtp.free.fr</td></tr><tr><td><strong>Gmail</strong></td><td>Gmail.com</td><td>smtp.gmail.com</td></tr><tr><td><strong>IFra</strong></td><td>Ifrance.fr</td><td>smtp.ifrance.fr</td></tr><tr><td><strong>Hotmail</strong></td><td>Hotmail.com</td><td>smtp.live.com</td></tr><tr><td><strong>LaPoste</strong></td><td>Laposte.fr</td><td>smtp.laposte.fr</td></tr><tr><td><strong>NetCourrier</strong></td><td>Netcourrier.com</td><td>smtp.netcourrier.com</td></tr><tr><td><strong>O2</strong></td><td>o2.com</td><td>smtp.o2.com</td></tr><tr><td><strong>Orange</strong></td><td>Orange.fr</td><td>smtp.orange.fr</td></tr><tr><td><strong>Outlook.com (former Hotmail)</strong></td><td>Outlook.com</td><td>smtp.live.com</td></tr><tr><td><strong>Sympatico</strong></td><td>Sympatico.ca</td><td>smtphm.sympatico.ca</td></tr><tr><td><strong>Tiscali</strong></td><td>Tiscali.fr</td><td>smtp.tiscali.fr</td></tr><tr><td><strong>Verizon</strong></td><td>Verizon.net</td><td>outgoing.verizon.net</td></tr><tr><td><strong>Voila</strong></td><td>Voila.fr</td><td>smtp.voila.fr</td></tr><tr><td><strong>Wanadoo</strong></td><td>Wanadoo.fr</td><td>smtp.wanadoo.fr</td></tr><tr><td><strong>Yahoo</strong></td><td>Yahoo.com</td><td>mail.yahoo.com</td></tr></tbody></table></figure>



<p>Avec cela, tu auras besoin du port d&rsquo;accès, de manière général, la connexion passera par du <a href="https://support.hostpoint.ch/fr/produits/ssl/questions-frequentes-sur-ssl/comment-fonctionne-une-connexion-ssl#:~:text=SSL%20signifie%20Secure%20Sockets%20Layer,au%20lieu%20de%20http%3A%2F%2F." target="_blank" rel="noreferrer noopener">SSL</a>, le port par défaut est <strong>465</strong> (lire cet <a href="https://kinsta.com/fr/blog/port-smtp/" target="_blank" rel="noreferrer noopener">article </a>pour obtenir plus d&rsquo;informations sur les ports).</p>



<p>Pour information, pour IONOS, le port SSL/TTL est 587.</p>



<p>Une fois toutes les informations connectées, dans un fichier au même niveau que le dossier PHPMailer, écrire :</p>



<pre class="EnlighterJSRAW" data-enlighter-language="php" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">&lt;?php

use PHPMailer\PHPMailer\PHPMailer;
use PHPMailer\PHPMailer\Exception;

require('PHPMailer'.DIRECTORY_SEPARATOR.'src'.DIRECTORY_SEPARATOR.'Exception.php');
require('PHPMailer'.DIRECTORY_SEPARATOR.'src'.DIRECTORY_SEPARATOR.'PHPMailer.php');
require('PHPMailer'.DIRECTORY_SEPARATOR.'src'.DIRECTORY_SEPARATOR.'SMTP.php');

$mail = new PHPMailer(true);
try{
	// Configuration du serveur
	$mail->isSMTP();
	$mail->Host 		= 'adresse-serveur-smtp';
	$mail->SMTPAuth		= true;
	$mail->Username		= 'identifiant@mail';
	$mail->Password		= 'mot_de_passe';
	$mail->SMTPSecure	= PHPMailer::ENCRYPTION_STARTTLS;
	$mail->Port		= 587; //465

	// Adresses
	$mail->setFrom('adresse_affichée_expéditeur', 'nom_affiché_expéditeur');
	$mail->addAddress('adresse_mail_destinataire', 'nom_destinataire');
	$mail->addReplyTo('adresse_mail_de_réponse', 'nom de réponse');
        $mail->addCC('adresse_mail_copie');
	$mail->addBCC('adresse_mail_cachée');

	// pièce jointe
	$mail->addAttachment('/chemin/vers/piece/jointe', '/chemin/vers/seconde/piece/jointe');

	// contenu
	$mail->isHTML(true);
	$mail->Subject		= 'Sujet du mail';
	$mail->Body		= 'C\'est le corps du &lt;strong>message&lt;/strong>';
	$mail->AltBody		= 'Un corps alternatif si la version HTML ne peut être affiché';

	$mail->send();
	echo 'Mail envoyé';
} catch ( Exception $e ){
	echo 'Le message ne peut pas être envoyé. Mailer erreur : '.$mail->ErrorInfo;
}
?>
</pre>



<p>Il ne reste plus qu&rsquo;à exécuter le fichier et vérifier dans la boite mail.</p>



<p></p>



<h2 class="wp-block-heading">Conclusion</h2>



<p>PHPMailer est un outil puissant en PHP permettant de diffuser des mails facilement.</p>
<p>L’article <a href="https://programmation.surleweb-france.fr/php-envoyer-des-mails-avec-phpmailer/">PHP, envoyer des mails avec PHPMailer</a> est apparu en premier sur <a href="https://programmation.surleweb-france.fr">La programmation sur le web</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://programmation.surleweb-france.fr/php-envoyer-des-mails-avec-phpmailer/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">1024</post-id>	</item>
		<item>
		<title>PHP, créer un système d&#8217;upload de fichier</title>
		<link>https://programmation.surleweb-france.fr/php-creer-un-systeme-dupload-de-fichier/</link>
					<comments>https://programmation.surleweb-france.fr/php-creer-un-systeme-dupload-de-fichier/#respond</comments>
		
		<dc:creator><![CDATA[Zigomato]]></dc:creator>
		<pubDate>Fri, 28 May 2021 06:00:00 +0000</pubDate>
				<category><![CDATA[Développement Web]]></category>
		<category><![CDATA[HTML]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[file]]></category>
		<category><![CDATA[form]]></category>
		<category><![CDATA[move_uploaded_file]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[upload]]></category>
		<guid isPermaLink="false">https://programmation.surleweb-france.fr/?p=1019</guid>

					<description><![CDATA[<p>Création d'un système d'upload de fichier simple en langage PHP à partir d'une page HTML</p>
<p class="continue-reading-button"> <a class="continue-reading-link" href="https://programmation.surleweb-france.fr/php-creer-un-systeme-dupload-de-fichier/">Continuer la lecture<i class="crycon-right-dir"></i></a></p>
<p>L’article <a href="https://programmation.surleweb-france.fr/php-creer-un-systeme-dupload-de-fichier/">PHP, créer un système d&rsquo;upload de fichier</a> est apparu en premier sur <a href="https://programmation.surleweb-france.fr">La programmation sur le web</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p>Parce qu&rsquo;on peut avoir besoin de charger une fichier comme une image pour un avatar, l&rsquo;upload de fichier est quasi-incontournable. En langage PHP, cela se fait très rapidement et surtout facilement.</p>



<p>Je vais te montrer cela en illustrant ave un petit exemple simple et les vérifications élémentaires.</p>



<p>Tu peux trouver sur <a href="https://github.com/zigomato/ArticlePHP/tree/main/UploadFichier" target="_blank" rel="noreferrer noopener">mon dépôt GITHUB</a>, les deux fichiers php de cet article. Je n&rsquo;y ai pas mis les images.</p>



<h2 class="wp-block-heading">Création du formulaire</h2>



<p>Pour la réalisation de cet article, à la racine de ton site d&rsquo;exemple, tu placeras le fichier<strong><em> index.php</em></strong> ainsi que le fichier <strong><em>upload.php</em></strong>, tu créeras également un dossier <strong><em>files </em></strong>où les fichiers seront uploadés.</p>



<p>La construction du fichier <strong><em>index.php</em></strong> se fait de cette manière :</p>



<pre class="EnlighterJSRAW" data-enlighter-language="html" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">&lt;!doctype html>
&lt;html lang="fr">
	&lt;header>
		&lt;meta charset="utf-8">
		&lt;title>Système d'upload de fichiers&lt;/title>
	&lt;/header>
	&lt;body>
		&lt;h1>Système d'upload de fichier&lt;/h1>
		&lt;form action="upload.php" method="POST" enctype="multipart/form-data">
			&lt;input type="text" name="nom" id="id" placeholder="Nom du fichier" />
			&lt;input type="file" name="fichier" placeholder="Fichier" />
			&lt;input type="submit" name="envoyer" value="Envoyer le fichier" />
		&lt;/form>
	&lt;/body>
&lt;/html></pre>



<p>On y retrouve un formulaire standard avec ses inputs :</p>



<ul class="wp-block-list"><li><strong><em>text </em></strong>pour le nom du fichier</li><li><strong><em>file </em></strong>pour le fichier à uploader</li><li><strong><em>submit </em></strong>pour le bouton</li></ul>



<p>A la validation du formulaire, les données sont envoyées avec la méthode<a href="https://programmation.surleweb-france.fr/php-la-transmission-de-donnees/" target="_blank" rel="noreferrer noopener"> POST</a> vers la page <strong><em>upload.php</em></strong>. </p>



<p><strong>Le point important </strong>ici est l&rsquo;ajout de l&rsquo;attribut <strong><em>enctype</em></strong>, sans lui, le fichier ne sera pas transmis :</p>



<pre class="EnlighterJSRAW" data-enlighter-language="html" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">enctype="multipart/form-data"</pre>



<h2 class="wp-block-heading">Traitement PHP du fichier</h2>



<p>Maintenant que nous avons notre zone de saisie, nous allons voir la page <strong><em>upload.php</em></strong> qui permet de traiter le formulaire.</p>



<p>Tout d&rsquo;abord, on va s&rsquo;assurer que la page est bien appelée depuis le formulaire et que le champ <strong><em>nom </em></strong>et le <strong><em>fichier </em></strong>sont bien choisis, on en profite pour gérer les erreurs :</p>



<pre class="EnlighterJSRAW" data-enlighter-language="php" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">if( isset($_POST['envoyer']) ){ // permet de s'assurer que le formulaire est bien à l'origine
	if( !empty($_POST['nom']) &amp;&amp; !empty($_FILES['fichier']) ){ // contrôle de la présence du fichier et du nom de fichier

	} else {
		header('location: index.php?type=error&amp;code=2');
	}
} else {
	header('location: index.php?type=error&amp;code=1');
}</pre>



<p>Une fois ces vérifications faites, on s&rsquo;assure qu&rsquo;il n&rsquo;y a pas d&rsquo;erreur sur le chargement du fichier :</p>



<pre class="EnlighterJSRAW" data-enlighter-language="php" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">		if( $_FILES['fichier']['error'] === 0 ){ // contrôle de l'absence d'erreur du chargement de l'image depuis le formulaire

		} else {
			header('location: index.php?type=error&amp;code=3');
		}</pre>



<p>Avant d&rsquo;enregistrer, on va préparer un peu la manipulation :</p>



<pre class="EnlighterJSRAW" data-enlighter-language="php" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">$uploadDirectory = __DIR__.DIRECTORY_SEPARATOR.'files'.DIRECTORY_SEPARATOR; // fichier d'upload
$fileInfo = new SplFileInfo($_FILES['fichier']['name']); // préparation du fichier pour upload
$extension = $fileInfo->getExtension();
$nouveauFichier = $_POST['nom'].'.'.$extension;</pre>



<p>On finit par déplacer le fichier en le renommant avec la fonction <a href="https://www.php.net/manual/fr/function.move-uploaded-file" target="_blank" rel="noreferrer noopener">move_uploaded_file()</a> et la redirection finale :</p>



<pre class="EnlighterJSRAW" data-enlighter-language="php" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">move_uploaded_file($_FILES['fichier']['tmp_name'], $uploadDirectory.$nouveauFichier);
header('location: index.php?type=success');</pre>



<h2 class="wp-block-heading">Gestion des messages</h2>



<p>Dans le fichier précédent, nous avons fait des redirections en indiquant des informations, celles-là seront indiquer au rechargement de la page, nous allons donc ajouter au fichier <strong><em>index.php</em></strong>, ces informations :</p>



<pre class="EnlighterJSRAW" data-enlighter-language="php" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">&lt;?php
if( !empty($_GET['type']) ){
	if( $_GET['type'] === 'success' ){
		$message = "Fichier enregistré avec succès";
	} elseif ( $_GET['type'] === 'error' &amp;&amp; !empty($_GET['code']) ){
		switch ($_GET['code']) {
			case 1:
				$message = "Accès non autorisé";
				break;
			case 2:
				$message = "Saisir le champs nom et sélectionné un fichier";
				break;
			case 3:
				$message = "Erreur lors du chargement du fichier";
				break;
		}
	}
}
?>
&lt;!doctype html>
&lt;html lang="fr">
	&lt;header>
		&lt;meta charset="utf-8">
		&lt;title>Système d'upload de fichiers&lt;/title>
	&lt;/header>
	&lt;body>
		&lt;h1>Système d'upload de fichier&lt;/h1>
		&lt;?php
		if( !empty($message) ) echo '&lt;p>'.$message.'&lt;/p>';
		?>
		&lt;form action="upload.php" method="POST" enctype="multipart/form-data">
			&lt;input type="text" name="nom" id="id" placeholder="Nom du fichier" />
			&lt;input type="file" name="fichier" placeholder="Fichier" />
			&lt;input type="submit" name="envoyer" value="Envoyer le fichier" />
		&lt;/form>
	&lt;/body>
&lt;/html></pre>



<p>On finit par ajouter l&rsquo;affichage des liens vers les images présentes dans le fichier, on place le code suivant juste avant la balise fermante <strong><em>body </em></strong>:</p>



<pre class="EnlighterJSRAW" data-enlighter-language="php" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">	&lt;?php
	$directory = opendir(__DIR__.DIRECTORY_SEPARATOR.'files/'); // ouverture du dossier
	echo '&lt;ul>';
	while( ($file = readdir($directory)) ){ // parcours du dossier
		if( $file !== '.' &amp;&amp; $file !== '..' ){
			echo '&lt;li>&lt;a href="./files/'.$file.'">'.$file.'&lt;/a>&lt;/li>';
		}
	}
	echo '&lt;/ul>';
	?></pre>



<h2 class="wp-block-heading">Conclusion</h2>



<p>L&rsquo;ensemble des codes sont disponibles sur mon <a href="https://github.com/zigomato/ArticlePHP/tree/main/UploadFichier" target="_blank" rel="noreferrer noopener">dépôt</a>, bien sûr, il s&rsquo;agit d&rsquo;une version de base pour illustrer le fonctionnement, on imagine facilement ajouter un contrôle sur les extensions, la taille &#8230;</p>
<p>L’article <a href="https://programmation.surleweb-france.fr/php-creer-un-systeme-dupload-de-fichier/">PHP, créer un système d&rsquo;upload de fichier</a> est apparu en premier sur <a href="https://programmation.surleweb-france.fr">La programmation sur le web</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://programmation.surleweb-france.fr/php-creer-un-systeme-dupload-de-fichier/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">1019</post-id>	</item>
		<item>
		<title>PHP, la transmission de données</title>
		<link>https://programmation.surleweb-france.fr/php-la-transmission-de-donnees/</link>
					<comments>https://programmation.surleweb-france.fr/php-la-transmission-de-donnees/#respond</comments>
		
		<dc:creator><![CDATA[Zigomato]]></dc:creator>
		<pubDate>Thu, 20 May 2021 06:00:00 +0000</pubDate>
				<category><![CDATA[HTML]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[données]]></category>
		<category><![CDATA[formulaire]]></category>
		<category><![CDATA[html]]></category>
		<category><![CDATA[information]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[variable]]></category>
		<guid isPermaLink="false">https://programmation.surleweb-france.fr/?p=995</guid>

					<description><![CDATA[<p>Afin de données un peu de vie à ses pages internet, la transmission de données peut se faire soit avec la méthode GET ou POST</p>
<p class="continue-reading-button"> <a class="continue-reading-link" href="https://programmation.surleweb-france.fr/php-la-transmission-de-donnees/">Continuer la lecture<i class="crycon-right-dir"></i></a></p>
<p>L’article <a href="https://programmation.surleweb-france.fr/php-la-transmission-de-donnees/">PHP, la transmission de données</a> est apparu en premier sur <a href="https://programmation.surleweb-france.fr">La programmation sur le web</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p>L&rsquo;un des intérêts du PHP est de pouvoir rendre des pages web dynamique qui pourront être modifiées en fonction de l&rsquo;utilisateur. La transmission de données ne se fait pas réellement en PHP, celle-ci se fait en HTML (principalement), en revanche, le traitement se fait en php (sur un serveur dont le langage est le PHP).</p>



<p>La transmission de données se fait en utilisant deux méthodes : GET et POST, que nous allons voir dans cet page.</p>



<p>L&rsquo;ensemble des fichiers sont disponibles sur ce <a href="https://github.com/zigomato/ArticlePHP/tree/main/transmission-donnees" target="_blank" rel="noreferrer noopener">dépôt</a>. Ils sont tous à mettre dans le même dossier (attention à l&#8217;emplacement sur un serveur.</p>



<h2 class="wp-block-heading">La méthode GET</h2>



<p>La méthode <strong><em>GET </em></strong>permet de transmettre des informations en utilisant la barre d&rsquo;adresse comme ceci : <a href="https://www.google.fr/search?rlz=1C1GFR343&amp;q=programmationsurleweb" target="_blank" rel="noreferrer noopener">https://www.google.fr/search?rlz=1C1GFR343&amp;q=programmationsurleweb</a>. Ce sont des données directement visible.</p>



<p>Lorsque l&rsquo;on fait de l<a href="https://programmation.surleweb-france.fr/php-url-rewriting/" target="_blank" rel="noreferrer noopener">&lsquo;URL Rewriting</a>, l&rsquo;adresse est plus lisible : <a href="https://programmation.surleweb-france.fr/avec-quoi-creer-son-site/" target="_blank" rel="noreferrer noopener">https://programmation.surleweb-france.fr/avec-quoi-creer-son-site/</a>, mais le traitement derrière (pour simplifier) est équivalent à la méthode <strong><em>GET</em></strong>.</p>



<p>Voyons le contenu du fichier <strong><em><a href="https://github.com/zigomato/ArticlePHP/blob/main/transmission-donnees/envoi-get.php" target="_blank" rel="noreferrer noopener">envoi-get.php</a></em></strong> :</p>



<pre class="EnlighterJSRAW" data-enlighter-language="php" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">&lt;html lang="fr">
	&lt;head>
		&lt;meta charset="UTF-8">
		&lt;title>Envoi par la méthode GET&lt;/title>
	&lt;/head>
	&lt;body>
		&lt;a href="reception-get.php?nom=Nicolas&amp;age=36">Envoi&lt;/a>
	&lt;/body>
&lt;/html></pre>



<p>Les informations à envoyer sont présentes sous cette forme dans l&rsquo;attribut <strong><em>href</em></strong> du lien : </p>



<div class="wp-block-image"><figure class="aligncenter size-large"><img loading="lazy" decoding="async" width="328" height="220" src="//i1.wp.com/programmation.surleweb-france.fr/wp-content/uploads/2021/05/image-7.png" alt="" class="wp-image-996" srcset="https://i0.wp.com/programmation.surleweb-france.fr/wp-content/uploads/2021/05/image-7.png?w=328&amp;ssl=1 328w, https://i0.wp.com/programmation.surleweb-france.fr/wp-content/uploads/2021/05/image-7.png?resize=300%2C201&amp;ssl=1 300w, https://i0.wp.com/programmation.surleweb-france.fr/wp-content/uploads/2021/05/image-7.png?resize=150%2C101&amp;ssl=1 150w" sizes="auto, (max-width: 328px) 100vw, 328px" /></figure></div>



<p>A présent, le fichier php qui va réceptionner les données, c&rsquo;est-à-dire <strong><em><a href="https://github.com/zigomato/ArticlePHP/blob/main/transmission-donnees/reception-get.php" target="_blank" rel="noreferrer noopener">reception-get.php</a></em></strong> :</p>



<pre class="EnlighterJSRAW" data-enlighter-language="php" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">&lt;html lang="fr">
	&lt;head>
		&lt;meta charset="UTF-8">
		&lt;title>Réception par la méthode GET&lt;/title>
	&lt;/head>
	&lt;body>
		&lt;p>Bienvenu &lt;strong>&lt;?= $_GET['nom'] ?>&lt;/strong>, tu as &lt;strong>&lt;?= $_GET['age']?>&lt;/strong>, ce n'est pas un peu vieux&lt;/p>
	&lt;/body>
&lt;/html></pre>



<p>La récupération se fait avec la constante <a href="https://www.php.net/manual/fr/reserved.variables.get.php" target="_blank" rel="noreferrer noopener">$_GET</a> qui est un tableau, les éléments de ce tableau sont identifiés par le nom des variables qui ont été transmis dans l&rsquo;adresse.</p>



<p>Dans mon exemple, j&rsquo;ai simplement intégrer le code PHP dans mon code HTML.</p>



<h2 class="wp-block-heading">La méthode POST</h2>



<p>La transmission de données par la méthode <strong><em>POST </em></strong>se fait directement dans le script sans passer par l&rsquo;URL, il s&rsquo;agit de la méthode la plus couramment utilisée, notamment pour les formulaires.</p>



<p>Comme pour la méthode GET, voyons un petit exemple, en premier lieu, le fichier <a href="https://github.com/zigomato/ArticlePHP/blob/main/transmission-donnees/envoi-post.php" target="_blank" rel="noreferrer noopener"><strong><em>envoi-post.php</em></strong></a> : </p>



<pre class="EnlighterJSRAW" data-enlighter-language="php" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">&lt;html lang="fr">
	&lt;head>
		&lt;meta charset="UTF-8">
		&lt;title>Envoi par la méthode POST&lt;/title>
	&lt;/head>
	&lt;body>
		&lt;form method="post" action="reception-post.php">
			&lt;input type="text" name="nom" value="Nicolas">
			&lt;input type="number" step=1 name="age" value=36>
			&lt;input type="submit" name="envoyer" value="Envoyer">
		&lt;/form>
	&lt;/body>
&lt;/html></pre>



<p>Le but de cet article n&rsquo;est pas de rentrer dans les détails des formulaires, ceux qui nous intéresse ici sont :</p>



<ul class="wp-block-list"><li>dans la balise <strong><em>form</em></strong>, la valeur de l&rsquo;attribut <strong><em>method</em></strong> est <strong><em>post,</em></strong> la valeur de l&rsquo;attribut  <strong><em>action </em></strong>est la page que nous voulons atteindre.</li><li>les différentes balises <strong><em>input </em></strong>représente les données que nous voulons envoyer, il existe bien d&rsquo;autres types, pour mon exemple, j&rsquo;ai pris un type texte et nombre (le <strong><em>submit </em></strong>est pour exécuter le formulaire vers la page identifiée dans <strong><em>action</em></strong>)</li><li>L&rsquo;attribut <strong><em>name</em></strong> des balises <strong><em>input </em></strong>sont les noms des variables</li><li>l&rsquo;attribut <strong><em>value </em></strong>permet de saisir une valeur par défaut dans le champ</li></ul>



<p>maintenant, voyons le fichier <a href="https://github.com/zigomato/ArticlePHP/blob/main/transmission-donnees/reception-post.php" target="_blank" rel="noreferrer noopener">reception-post.php</a> :</p>



<pre class="EnlighterJSRAW" data-enlighter-language="php" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">&lt;html lang="fr">
	&lt;head>
		&lt;meta charset="UTF-8">
		&lt;title>Réception par la méthode POST&lt;/title>
	&lt;/head>
	&lt;body>
		&lt;p>Bienvenu &lt;strong>&lt;?= $_POST['nom'] ?>&lt;/strong>, tu as &lt;strong>&lt;?= $_POST['age']?>&lt;/strong>, tout compte fait, ce n'est pas un peu vieux&lt;/p>
	&lt;/body>
&lt;/html></pre>



<p>De la même manière que nous récupérons les données avec la constantes $_GET, avec la méthode POST, celles-ci sont récupérées avec la constante <a href="https://www.php.net/manual/fr/reserved.variables.post.php" target="_blank" rel="noreferrer noopener">$_POST</a> sous forme de tableau.</p>



<h2 class="wp-block-heading">Conclusion</h2>



<p>Tu es maintenant prêt à réaliser ton premier formulaire d&rsquo;inscription, bien entendu, tu devras y mettre un peu de sécurité.</p>
<p>L’article <a href="https://programmation.surleweb-france.fr/php-la-transmission-de-donnees/">PHP, la transmission de données</a> est apparu en premier sur <a href="https://programmation.surleweb-france.fr">La programmation sur le web</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://programmation.surleweb-france.fr/php-la-transmission-de-donnees/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">995</post-id>	</item>
		<item>
		<title>PHP, les commentaires</title>
		<link>https://programmation.surleweb-france.fr/php-les-commentaires/</link>
					<comments>https://programmation.surleweb-france.fr/php-les-commentaires/#respond</comments>
		
		<dc:creator><![CDATA[Zigomato]]></dc:creator>
		<pubDate>Tue, 18 May 2021 06:00:00 +0000</pubDate>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[commentaire]]></category>
		<category><![CDATA[php]]></category>
		<guid isPermaLink="false">https://programmation.surleweb-france.fr/?p=993</guid>

					<description><![CDATA[<p>En PHP (comme ailleurs), l'utilisation des commentaires est un bon moyen de ne pas perdre le fil de son code.</p>
<p class="continue-reading-button"> <a class="continue-reading-link" href="https://programmation.surleweb-france.fr/php-les-commentaires/">Continuer la lecture<i class="crycon-right-dir"></i></a></p>
<p>L’article <a href="https://programmation.surleweb-france.fr/php-les-commentaires/">PHP, les commentaires</a> est apparu en premier sur <a href="https://programmation.surleweb-france.fr">La programmation sur le web</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p>En PHP comme ailleurs, les commentaires sont une part importante du code que ce soit pour vous mais aussi pour les autres codeurs.</p>



<h2 class="wp-block-heading">Des commentaires, pourquoi ?</h2>



<p>Avoir des commentaires peut donner une impression de lourdeur à la lecture du code. Si celui-ci est bien utilisé, il devient même un atout pour tout développeur.</p>



<p>Ils ne doivent jamais être écrit à la fin. J&rsquo;irai même jusqu&rsquo;à dire qu&rsquo;ils doivent être parmi les premiers éléments à être affichés. Il est important d&rsquo;écrire ce que l&rsquo;on souhaite faire pour organiser son code, cela peut se faire sur papier et pourquoi pas grâce à des commentaires.</p>



<p>Tu n&rsquo;es pas infaillible, ce que tu as écris maintenant ne te sera peut-être plus aussi clair dans 6 mois.</p>



<p>Enfin, même si ton code te parait lisible et compréhensible, ce ne sera pas forcément le cas d&rsquo;un autre codeur, une petite phrase pour expliquer, pour couper ou organiser sera toujours la bienvenue.</p>



<h2 class="wp-block-heading">Comment insérer des commentaires</h2>



<p>Maintenant qu&rsquo;on a vu pourquoi, passons au comment. Il existe deux type de commentaire :</p>



<ul class="wp-block-list"><li>sur une ligne</li><li>sur plusieurs lignes</li></ul>



<p>Pour un commentaire sur une ligne, y compris après du code :</p>



<pre class="EnlighterJSRAW" data-enlighter-language="php" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">// Voici un commentaire sur une ligne
$var = 12
// Je rajoute 3 à $var
$var = 12 + 5 // pourquoi ai-je ajouter 5</pre>



<p>Pour le commentaire sur plusieurs lignes :</p>



<pre class="EnlighterJSRAW" data-enlighter-language="php" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">function mettreDuCommentaire()
{
    /*
    Cette fonction a pour but
    de montrer l'utilisation
    des commentaires sur 
    plusieurs lignes
    */
}</pre>



<h2 class="wp-block-heading">Conclusion</h2>



<p>Alors n&rsquo;hésites pas à utiliser les commentaires, ils peuvent être utiles à toi ou n&rsquo;importe qui qui reviendrait sur ton code.</p>
<p>L’article <a href="https://programmation.surleweb-france.fr/php-les-commentaires/">PHP, les commentaires</a> est apparu en premier sur <a href="https://programmation.surleweb-france.fr">La programmation sur le web</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://programmation.surleweb-france.fr/php-les-commentaires/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">993</post-id>	</item>
		<item>
		<title>PHP, include et require</title>
		<link>https://programmation.surleweb-france.fr/php-include-et-require/</link>
					<comments>https://programmation.surleweb-france.fr/php-include-et-require/#respond</comments>
		
		<dc:creator><![CDATA[Zigomato]]></dc:creator>
		<pubDate>Sun, 16 May 2021 06:00:00 +0000</pubDate>
				<category><![CDATA[Développement Web]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[include]]></category>
		<category><![CDATA[include_once]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[require]]></category>
		<category><![CDATA[require_once]]></category>
		<guid isPermaLink="false">https://programmation.surleweb-france.fr/?p=976</guid>

					<description><![CDATA[<p>En PHP, il existe 4 fonctions incontournables pour intégrer du code extérieur à son script : include, require, include_once et require_once</p>
<p class="continue-reading-button"> <a class="continue-reading-link" href="https://programmation.surleweb-france.fr/php-include-et-require/">Continuer la lecture<i class="crycon-right-dir"></i></a></p>
<p>L’article <a href="https://programmation.surleweb-france.fr/php-include-et-require/">PHP, include et require</a> est apparu en premier sur <a href="https://programmation.surleweb-france.fr">La programmation sur le web</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p>Voilà un article qui fait suite à celui sur les chemins relatifs et absolus (disponible <a href="https://programmation.surleweb-france.fr/php-chemin-relatif-ou-chemin-absolu/" target="_blank" rel="noreferrer noopener">ici</a>). Maintenant que tu connais la différence et que tu sais quel chemin utilisé, nous allons voir 2 (en faite 4) fonctions incontournables en PHP.</p>



<p>Afin de faire appel à du code extérieur, en PHP nous allons utiliser 4 mots clés (2 d&rsquo;autres eux décollent des deux autres). Ils ont tous la même fonction mais leur rôle est différents.</p>



<h2 class="wp-block-heading">La fonction include et include_once</h2>



<p>La fonction <a href="https://www.php.net/manual/fr/function.include.php" target="_blank" rel="noreferrer noopener">include </a>va permettre d&rsquo;appeler un fichier (tout comme un <strong><em>require</em></strong>) en revanche, en cas d&rsquo;absence du fichier à inclure, un avertissement sera affiché sans que celui-ci soit bloquant, le script continuera de s&rsquo;exécuter.</p>



<p><a href="https://www.php.net/manual/fr/function.include-once.php" target="_blank" rel="noreferrer noopener">Include_once</a>, elle permet d&rsquo;inclure de la même manière et avec le même avertissement. En revanche, si le fichier a déjà été inclus, il ne fera pas la seconde inclusion.</p>



<p><strong><em>include_once</em></strong> prend plus de temps à s&rsquo;exécuter qu&rsquo;un simple <strong><em>include</em></strong>.</p>



<h2 class="wp-block-heading">La fonction require et require_once</h2>



<p>La fonction <a href="https://www.php.net/manual/fr/function.require.php" target="_blank" rel="noreferrer noopener">require</a>, quant à elle va également permettre d&rsquo;intégrer un fichier extérieur en revanche, en cas d&rsquo;absence du fichier, le script s&rsquo;arrête avec une très belle erreur.</p>



<p><a href="https://www.php.net/manual/fr/function.require-once.php" target="_blank" rel="noreferrer noopener">Require_once</a>, permet de s&rsquo;assurer qu&rsquo;une seule inclusion soit faite.</p>



<p>Le temps de traitement de <strong><em>require_once </em></strong>est également plus long qu&rsquo;un simple <strong><em>require</em></strong>.</p>



<h2 class="wp-block-heading">Quand utiliser include ou require</h2>



<p>Pour ma part, je choisi d&rsquo;utiliser la fonction <strong><em>include </em></strong>lorsqu&rsquo;il n&rsquo;y a pas de risque de sécurité ou d&rsquo;exécution du script (par exemple un <a href="https://www.anthedesign.fr/creation-de-sites-internet/creation-site-internet-template/" target="_blank" rel="noreferrer noopener">template</a>), j&rsquo;utilise le <strong><em>require </em></strong>pour importer des fonctions ou des éléments indispensables à l&rsquo;exécution du code.</p>



<h2 class="wp-block-heading">Conclusion</h2>



<p>Voilà une petite explication sur les différences et les utilisations des fonctions require et include en PHP.</p>
<p>L’article <a href="https://programmation.surleweb-france.fr/php-include-et-require/">PHP, include et require</a> est apparu en premier sur <a href="https://programmation.surleweb-france.fr">La programmation sur le web</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://programmation.surleweb-france.fr/php-include-et-require/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">976</post-id>	</item>
	</channel>
</rss>
