... <?php echo sprintf("<h1>Bonjour tout le monde</h1>"); ...
... http://localhost:8000/ ...
... <?php function Hello_Run() { echo sprintf("<h1>Bonjour tout le monde</h1>"); } Hello_Run(); ...
... http://localhost:8000/ ...
... <?php require "rdv_hello.php"; Hello_Run(); ...
... <?php function Hello_Run() { echo sprintf("<h1>Bonjour tout le monde</h1>"); } ...
... http://localhost:8000/ ...
... <?php require "cClass.php"; function run() { $oClass = new cClass(); $oClass->run(); } run(); run(); ...
... <?php class cClass { public function __construct() { echo sprintf("Constructeur : %s<br>\n", "cClass.__construct()"); } public function __destruct() { echo sprintf("Destructeur : %s<br>\n", "cClass.__destruct()"); } public function run() { echo sprintf("Méthode : %s<br>\n", "cClass.run()"); } } ...
... http://localhost:8000/ ...
... <?php require "rdv_autoload.php"; $oClass = new cClass(); $oClass->run(); ...
... <?php class cClass { public function __construct() { echo sprintf("Constructeur : %s<br>\n", "cClass.__construct()"); } public function run() { echo sprintf("Méthode : %s<br>\n", "cClass.run()"); } } ...
... <?php function rdv_autoload($_classname) { $classname = $_classname . ".php"; echo sprintf("rdv_autoload : %s<br>\n", $classname); require $classname; } spl_autoload_register('rdv_autoload'); ...
... http://localhost:8000/ ...
... <?php require "rdv_autoload.php"; $oClass = new cClass(); $oClass->run(); $oClass = new class\cClass(); $oClass->run(); ...
... <?php class cClass { public function __construct() { echo sprintf("Constructeur : %s<br>\n", "cClass.__construct()"); } public function __destruct() { echo sprintf("Destructeur : %s<br>\n", "cClass.__destruct()"); } public function run() { echo sprintf("Méthode : %s<br>\n", "cClass.run()"); } } ...
... <?php namespace class; class cClass { public function __construct() { echo sprintf("Constructeur (2) : %s<br>\n", "cClass.__construct()"); } public function __destruct() { echo sprintf("Destructeur (2) : %s<br>\n", "cClass.__destruct()"); } public function run() { echo sprintf("Méthode (2) : %s<br>\n", "cClass.run()"); } } ...
... http://localhost:8000/ ...
... <?php require "rdv_autoload.php"; $oMessage = "Passer un argument : "; $oClass = new cClass(); $oClass->run($oMessage); echo $oMessage; ...
... <?php class cClass { public function __construct() {} public function run(&$_oMessage) { $_oMessage .= "Par référence"; } } ...
... http://localhost:8000/ ...
... <?php require "rdv_autoload.php"; $oHtml = new app\cHtml( "ReadyWEB", "/data/img/logo.png", "image/png", "fr", "UTF-8", "Bonjour tout le monde" ); $aHtml = ""; $oHtml->run($aHtml); echo $aHtml; ...
... <?php namespace app; class cHtml { private $m_title; private $m_logo; private $m_logoMimeType; private $m_lang; private $m_encoding; private $m_body; public function __construct($_title, $_logo, $_logoMimeType, $_lang, $_encoding, $_body) { $this->m_title = $_title; $this->m_logo = $_logo; $this->m_logoMimeType = $_logoMimeType; $this->m_lang = $_lang; $this->m_encoding = $_encoding; $this->m_body = $_body; } public function run(&$_aHtml) { $_aHtml .= sprintf("<!DOCTYPE html>\n"); $_aHtml .= sprintf("<html lang='%s'>\n", $this->m_lang); $_aHtml .= sprintf("<head>\n"); $_aHtml .= sprintf("<title>%s</title>\n", $this->m_title); $_aHtml .= sprintf("<meta charset='%s'/>\n", $this->m_encoding); $_aHtml .= sprintf("<link rel='shortcut icon' type='%s' href='%s'/>\n", $this->m_logoMimeType, $this->m_logo); $_aHtml .= sprintf("<meta name='viewport' content='width=device-width, maximum-scale=1.0, minimum-scale=1.0, initial-scale=1.0, user-scalable=no'/>\n"); $_aHtml .= sprintf("</head>\n"); $_aHtml .= sprintf("<body>\n"); $_aHtml .= sprintf("%s\n", $this->m_body); $_aHtml .= sprintf("</body>\n"); $_aHtml .= sprintf("</html>\n"); return true; } } ...
... http://localhost:8000/ ...
... <?php require "rdv_autoload.php"; $aBody = ""; $aBody .= sprintf("<div class='page'>Bonjour tout le monde</div>"); $oHtml = new app\cHtml( "ReadyWEB", "/data/img/logo.png", "image/png", "fr", "UTF-8", $aBody ); $aHtml = ""; $oHtml->run($aHtml); echo $aHtml; ...
... <?php namespace app; class cHtml { ... public function run(&$_aHtml) { $_aHtml .= sprintf("<!DOCTYPE html>\n"); $_aHtml .= sprintf("<html lang='%s'>\n", $this->m_lang); $_aHtml .= sprintf("<head>\n"); $_aHtml .= sprintf("<title>%s</title>\n", $this->m_title); $_aHtml .= sprintf("<meta charset='%s'/>\n", $this->m_encoding); $_aHtml .= sprintf("<link rel='shortcut icon' type='%s' href='%s'/>\n", $this->m_logoMimeType, $this->m_logo); $_aHtml .= sprintf("<meta name='viewport' content='width=device-width, maximum-scale=1.0, minimum-scale=1.0, initial-scale=1.0, user-scalable=no'/>\n"); $_aHtml .= sprintf("<link rel='stylesheet' href='/css/styles.css'/>\n"); $_aHtml .= sprintf("</head>\n"); $_aHtml .= sprintf("<body>\n"); $_aHtml .= sprintf("%s\n", $this->m_body); $_aHtml .= sprintf("</body>\n"); $_aHtml .= sprintf("</html>\n"); return true; } } ...
... .page { background-color: teal; border-radius: 5px; padding: 20px; color: white; font-family: arial; font-size: 18px; } ...
... http://localhost:8000/ ...
... <?php require "rdv_autoload.php"; $aBody = ""; $aBody .= sprintf("<div class='button' onclick='callCallback()'>Run</div>"); $oHtml = new app\cHtml( "ReadyWEB", "/data/img/logo.png", "image/png", "fr", "UTF-8", $aBody ); $aHtml = ""; $oHtml->run($aHtml); echo $aHtml; ...
... <?php namespace app; class cHtml { ... public function run(&$_aHtml) { $_aHtml .= sprintf("<!DOCTYPE html>\n"); $_aHtml .= sprintf("<html lang='%s'>\n", $this->m_lang); $_aHtml .= sprintf("<head>\n"); $_aHtml .= sprintf("<title>%s</title>\n", $this->m_title); $_aHtml .= sprintf("<meta charset='%s'/>\n", $this->m_encoding); $_aHtml .= sprintf("<link rel='shortcut icon' type='%s' href='%s'/>\n", $this->m_logoMimeType, $this->m_logo); $_aHtml .= sprintf("<meta name='viewport' content='width=device-width, maximum-scale=1.0, minimum-scale=1.0, initial-scale=1.0, user-scalable=no'/>\n"); $_aHtml .= sprintf("<link rel='stylesheet' href='/css/styles.css'/>\n"); $_aHtml .= sprintf("</head>\n"); $_aHtml .= sprintf("<body>\n"); $_aHtml .= sprintf("%s\n", $this->m_body); $_aHtml .= sprintf("<script src='/js/scripts.js'></script>\n"); $_aHtml .= sprintf("</body>\n"); $_aHtml .= sprintf("</html>\n"); return true; } } ...
... "use strict"; function callCallback() { console.log("Démarrage du script JavaScript..."); } ...
... .button { display: inline-block; background-color: teal; border: none; border-radius: 5px; color: white; cursor: pointer; font-family: arial; font-size: 14px; line-height: 30px; padding: 0px 20px; } .button:hover { background-color: rgb(102, 160, 160); } .button:active { background-color: teal; } ...
... http://localhost:8000/ ...
... <?php require "rdv_autoload.php"; $oTrees = new app\cTrees(); // Parent 1 $oTrees->addParent("Parent 1"); // Parent 2 $oNode1 = $oTrees->addParent("Parent 2"); // --- Node 2.1 $oTrees->addNode($oNode1, "Node 2.1"); // --- Node 2.2 $oNode2 = $oTrees->addNode($oNode1, "Node 2.2"); // ------- Node 2.2.1 $oTrees->addNode($oNode2, "Node 2.2.1"); // ------- Node 2.2.2 $oTrees->addNode($oNode2, "Node 2.2.2"); // ------- Node 2.2.3 $oTrees->addNode($oNode2, "Node 2.2.3"); // --- Node 2.3 $oTrees->addNode($oNode1, "Node 2.3"); // Parent 3 $oTrees->addParent("Parent 3"); $aBody = ""; $aBody .= sprintf("<div class='page'>\n"); foreach ($oTrees->getTrees() as $oTree) { $aParent = $oTree->getParent(); $aIndex = $oTree->getIndex(); $oData = $oTree->getData(); $aBody .= sprintf("<div>[%d][%d] : %s</div>\n", $aParent, $aIndex, $oData); } $aBody .= sprintf("</div>\n",); $oHtml = new app\cHtml( "ReadyWEB", "/data/img/logo.png", "image/png", "fr", "UTF-8", $aBody ); $aHtml = ""; $oHtml->run($aHtml); echo $aHtml; ...
... <?php namespace app; class cTree { private $m_aParent; private $m_aIndex; private $m_oData; public function __construct($_aParent, $_aIndex, $_oData) { $this->m_aParent = $_aParent; $this->m_aIndex = $_aIndex; $this->m_oData = $_oData; } public function getParent() { return $this->m_aParent; } public function getIndex() { return $this->m_aIndex; } public function getData() { return $this->m_oData; } } ...
... <?php namespace app; class cTrees { private $m_oTrees; public function __construct() { $this->m_oTrees = []; } public function addParent($_aData) { $aParent = 0; $aIndex = count($this->m_oTrees) + 1; $oTree = new cTree($aParent, $aIndex, $_aData); $this->m_oTrees[] = $oTree; return $oTree; } public function addNode(cTree $_oTree, $_aData) { $aParent = $_oTree->getIndex(); $aIndex = count($this->m_oTrees) + 1; $oTree = new cTree($aParent, $aIndex, $_aData); $this->m_oTrees[] = $oTree; return $oTree; } public function getTrees() { return $this->m_oTrees; } } ...
... .page { background-color: teal; border-radius: 5px; padding: 20px; color: white; font-family: arial; font-size: 18px; } ...
... http://localhost:8000/ ...
... <?php require "rdv_autoload.php"; $oTrees = new app\cTrees(); // Parent 1 $oTrees->addParent("Parent 1"); // Parent 2 $oNode1 = $oTrees->addParent("Parent 2"); // --- Node 2.1 $oTrees->addNode($oNode1, "Node 2.1"); // --- Node 2.2 $oNode2 = $oTrees->addNode($oNode1, "Node 2.2"); // ------- Node 2.2.1 $oTrees->addNode($oNode2, "Node 2.2.1"); // ------- Node 2.2.2 $oTrees->addNode($oNode2, "Node 2.2.2"); // ------- Node 2.2.3 $oTrees->addNode($oNode2, "Node 2.2.3"); // --- Node 2.3 $oTrees->addNode($oNode1, "Node 2.3"); // Parent 3 $oTrees->addParent("Parent 3"); $aBody = ""; $aBody .= sprintf("<div class='page'>"); $oMenu = new app\cMenu($oTrees); $oMenu->run($aBody); $aBody .= sprintf("</div>"); $oHtml = new app\cHtml( "ReadyWEB", "/data/img/logo.png", "image/png", "fr", "UTF-8", $aBody ); $aHtml = ""; $oHtml->run($aHtml); echo $aHtml; ...
... <?php namespace app; class cTrees { private $m_oTrees; public function __construct() { $this->m_oTrees = []; } public function addParent($_aData) { $aParent = 0; $aIndex = count($this->m_oTrees) + 1; $oTree = new cTree($aParent, $aIndex, $_aData); $this->m_oTrees[] = $oTree; return $oTree; } public function addNode(cTree $_oTree, $_aData) { $aParent = $_oTree->getIndex(); $aIndex = count($this->m_oTrees) + 1; $oTree = new cTree($aParent, $aIndex, $_aData); $this->m_oTrees[] = $oTree; return $oTree; } public function getTrees() { return $this->m_oTrees; } public function getNodes($_aParent) { $oTrees = []; foreach ($this->m_oTrees as $oTree) { if ($oTree->getParent() == $_aParent) { $oTrees[] = $oTree; } } return $oTrees; } } ...
... <?php namespace app; class cMenu { private $m_oTrees; public function __construct(cTrees $_oTrees) { $this->m_oTrees = $_oTrees; } public function run(&$_aHtml) { $_aHtml .= sprintf("<div class='menu'>\n"); $this->createMenu($_aHtml, 0); $_aHtml .= sprintf("</div>\n"); return true; } private function createMenu(&$_aHtml, $_aIndex) { $oTrees = $this->m_oTrees->getNodes($_aIndex); if (count($oTrees)) { $_aHtml .= sprintf("<div class='menu_2'>\n"); foreach ($oTrees as $oTree) { $aParent = $oTree->getParent(); $aIndex = $oTree->getIndex(); $oData = $oTree->getData(); $_aHtml .= sprintf("<div>[%d][%d] : %s</div>\n", $aParent, $aIndex, $oData); $this->createMenu($_aHtml, $aIndex); } $_aHtml .= sprintf("</div>\n"); } return true; } } ...
... .page { background-color: teal; border-radius: 5px; padding: 20px; color: white; font-family: arial; font-size: 18px; } .menu { margin-left: -40px; } .menu_2 { padding-left: 40px; } ...
... http://localhost:8000/ ...
... <?php require "rdv_autoload.php"; $aBody = ""; $oSiteName = new app\cStiteName( "ReadyWeb", "/data/img/logo.png", "https://readydev.ovh/home/" ); $oSiteName->run($aBody); $oHtml = new app\cHtml( "ReadyWEB", "/data/img/logo.png", "image/png", "fr", "UTF-8", $aBody ); $aHtml = ""; $oHtml->run($aHtml); echo $aHtml; ...
... <?php namespace app; class cStiteName { private $m_aSiteName; private $m_aLogo; private $m_aLink; public function __construct($_aSiteName, $_aLogo, $_aLink) { $this->m_aSiteName = $_aSiteName; $this->m_aLogo = $_aLogo; $this->m_aLink = $_aLink; } public function run(&$_aSiteName) { $_aSiteName .= sprintf("<a class='logo' href='%s'>\n", $this->m_aLink); $_aSiteName .= sprintf("<img class='logo_2' src='%s'/>\n", $this->m_aLogo); $_aSiteName .= sprintf("<span class='logo_3'>%s</span>\n", $this->m_aSiteName); $_aSiteName .= sprintf("</a>\n"); return true; } } ...
... .logo { background-color: navy; display: inline-block; vertical-align: middle; padding: 5px 10px; border-radius: 5px; } .logo_2 { background-color: cyan; display: inline-block; vertical-align: middle; width: 25px; height: 25px; padding: 2px; border-radius: 50%; margin-right: 5px; } .logo_3 { display: inline-block; vertical-align: middle; color: cyan; font-size: 25px; font-family: Akronim; } ...
... http://localhost:8000/ ...
... <?php require "rdv_autoload.php"; $aBody = ""; $oConsole = new app\cConsole(); $oConsole->addData("Console", "Bonjour tout le monde"); $oConsole->addData("Console", "Afficher un message"); $oConsole->addData("Console", "Afficher une variable"); $oConsole->run($aBody); $oHtml = new app\cHtml( "ReadyWEB", "/data/img/logo.png", "image/png", "fr", "UTF-8", $aBody ); $aHtml = ""; $oHtml->run($aHtml); echo $aHtml; ...
... <?php namespace app; class cConsole { private $m_aDatas; public function __construct() { $this->m_aDatas = []; } public function addData($_aKey, $_aValue) { $this->m_aDatas[] = array($_aKey, $_aValue); } public function run(&$_aHtml) { if (count($this->m_aDatas)) { $_aHtml .= sprintf("<div class='console'>\n"); $_aHtml .= sprintf("<table>\n"); $_aHtml .= sprintf("<tr>\n"); $_aHtml .= sprintf("<th>Key</th>\n"); $_aHtml .= sprintf("<th>Value</th>\n"); $_aHtml .= sprintf("</tr>\n"); foreach ($this->m_aDatas as $aData) { $_aHtml .= sprintf("<tr>\n"); $_aHtml .= sprintf("<td>%s</td>\n", $aData[0]); $_aHtml .= sprintf("<td>%s</td>\n", $aData[1]); $_aHtml .= sprintf("</tr>\n"); } $_aHtml .= sprintf("</table>\n"); $_aHtml .= sprintf("</div>\n"); } return true; } } ...
... .console table { font-family: arial, sans-serif; border-collapse: collapse; width: 100%; } .console td, .console th { border: 1px solid black; text-align: left; padding: 8px; } .console tr:nth-child(even) { background-color: lightgray; } ...
... http://localhost:8000/ ...
... <?php require "rdv_autoload.php"; $aBody = ""; $oEnvo = app\cEnvo::Instance(); $oConsole = new app\cConsole(); $oConsole->addData("ENV_TYPE", $oEnvo->m_aEnvType); $oConsole->addData("ENV_TYPE", $oEnvo->m_aEnvType); $oConsole->addData("ENV_TYPE", $oEnvo->m_aEnvType); $oConsole->addData("ENV_TYPE", $oEnvo->m_aEnvType); $oConsole->run($aBody); $oHtml = new app\cHtml( "ReadyWEB", "/data/img/logo.png", "image/png", "fr", "UTF-8", $aBody ); $aHtml = ""; $oHtml->run($aHtml); echo $aHtml; ...
... <?php namespace app; class cEnvo { private static $m_instance = null; public $m_aEnvType; private function __construct() {} public static function Instance() { if (is_null(self::$m_instance)) { self::$m_instance = new cEnvo(); self::$m_instance->init(); } return self::$m_instance; } private function init() { $this->m_aEnvType = $this->loadEnv("ENV_TYPE"); } private function loadEnv($_aEnv, $aDefaultValue = "") { $aValue = getenv($_aEnv); if (!$aValue) return $aDefaultValue; return $aValue; } } ...
... http://localhost:8000/ ...
... <?php require "rdv_autoload.php"; $aBody = ""; $oEnv = new app\cEnv(); $oEnv->addEnv("ENV_TYPE", "ENV_TYPE"); $oEnvs = new app\cEnvs($oEnv); $oEnvs->run($aBody); $btnRun = new app\cButton("Run"); $btnRun->run($aBody); $oHtml = new app\cHtml( "ReadyWEB", "/data/img/logo.png", "image/png", "fr", "UTF-8", $aBody ); $aHtml = ""; $oHtml->run($aHtml); echo $aHtml; ...
... <?php namespace app; class cEnv { private $m_aEnvs; public function __construct() { $this->m_aEnvs = []; } public function addEnv($_aId, $_aEnv) { $this->m_aEnvs[$_aId] = $_aEnv; } public function getEnvs() { return $this->m_aEnvs; } } ...
... <?php namespace app; class cEnvs { private $m_oEnv; public function __construct(cEnv $_oEnv) { $this->m_oEnv = $_oEnv; } public function run(&$_aHtml) { foreach ($this->m_oEnv->getEnvs() as $aId => $aEnv) { $aValue = $this->loadEnv($aEnv); $_aHtml .= sprintf("<input type='hidden' id='%s' value='%s'/>\n", $aId, $aValue); } return true; } private function loadEnv($_aEnv, $aDefaultValue = "") { $aValue = getenv($_aEnv); if (!$aValue) return $aDefaultValue; return $aValue; } } ...
... <?php namespace app; class cButton { private $m_aName; public function __construct($_aName) { $this->m_aName = $_aName; } public function run(&$_aHtml) { $_aHtml .= sprintf("<button class='button' onclick='callCallback()'>%s</button>\n", $this->m_aName); return true; } } ...
... "use strict"; function callCallback() { var oEnvo = cEnvo.Instance(); console.log("ENV_TYPE : " + oEnvo.m_aEnvType); } ...
... "use strict"; function callCallback() { var oEnvo = cEnvo.Instance(); console.log("ENV_TYPE : " + oEnvo.m_aEnvType); } ...
... "use strict"; class cEnvo { static #m_instance = null; static #m_isInstance = false; constructor() { if (!cEnvo.#m_isInstance) { throw new TypeError("cEnvo is not constructable."); } } static Instance() { if (this.#m_instance == null) { this.#m_isInstance = true; this.#m_instance = new cEnvo(); this.#m_instance.#init(); } return this.#m_instance; } #init() { this.m_aEnvType = this.#loadEnv("ENV_TYPE"); } #loadEnv(_aEnv, _aDefaultValue = "") { var idInput = document.querySelector("input#" + _aEnv); if (!idInput) return _aDefaultValue; return idInput.value; } } ...
... http://localhost:8000/ ...
... <?php require "rdv_autoload.php"; $aBody = ""; $btnRun = new app\cButton("Run", "play"); $btnRun->run($aBody); $oHtml = new app\cHtml( "ReadyWEB", "/data/img/logo.png", "image/png", "fr", "UTF-8", $aBody ); $aHtml = ""; $oHtml->run($aHtml); echo $aHtml; ...
... <?php namespace app; class cButton { private $m_aName; private $m_aIcon; public function __construct($_aName, $_aIcon) { $this->m_aName = $_aName; $this->m_aIcon = $_aIcon; } public function run(&$_aHtml) { $_aHtml .= sprintf("<button class='button' onclick='callCallback()'>\n"); $_aHtml .= sprintf("<i class='fa fa-%s'></i> %s\n", $this->m_aIcon, $this->m_aName); $_aHtml .= sprintf("</button>\n"); return true; } } ...
... .button { display: inline-block; background-color: teal; border: none; border-radius: 5px; color: white; cursor: pointer; font-family: arial; font-size: 14px; line-height: 30px; padding: 0px 20px; } .button:hover { background-color: rgb(102, 160, 160); } .button:active { background-color: teal; } ...
... "use strict"; function callCallback() { console.log("Démarrage du script JavaScript..."); } ...
... http://localhost:8000/ ...
... <?php require "rdv_autoload.php"; $aBody = ""; $btnRun = new app\cButton("Run", "play"); $btnRun->run($aBody); $oHtml = new app\cHtml( "ReadyWEB", "/data/img/logo.png", "image/png", "fr", "UTF-8", $aBody ); $aHtml = ""; $oHtml->run($aHtml); echo $aHtml; ...
... <?php namespace app; class cButton { ... public function run(&$_aHtml) { $_aHtml .= sprintf("<button class='button' onclick='callCallback()'>\n"); $_aHtml .= sprintf("<i class='fa fa-%s'></i> %s\n", $this->m_aIcon, $this->m_aName); $_aHtml .= sprintf("</button>\n"); return true; } } ...
... <?php namespace app; class cHtml { ... public function run(&$_aHtml) { ... $_aHtml .= sprintf("<body>\n"); $_aHtml .= sprintf("%s", $this->m_body); $_aHtml .= sprintf("<script src='/js/app/cGet.js'></script>\n"); $_aHtml .= sprintf("<script src='/js/scripts.js'></script>\n"); $_aHtml .= sprintf("</body>\n"); $_aHtml .= sprintf("</html>\n"); return true; } } ...
... "use strict"; function callCallback() { var oGet = new cGet(); oGet.run("/index.php", onGet); } function onGet(_aData) { console.log("[client] : " + _aData); } ...
... "use strict"; class cGet { constructor() {} run(_aUrl, _onCallback) { var oXhttp = new XMLHttpRequest(); oXhttp.onreadystatechange = function() { if (this.readyState == 4 && this.status == 200) { var aResponseText = this.responseText; _onCallback(aResponseText); } }; var aMethod = "GET"; var isAsync = true; var aUser = null; var aPassword = null; oXhttp.open(aMethod, _aUrl, isAsync, aUser, aPassword); oXhttp.send(); return true; } } ...
... http://localhost:8000/ ...
... https://www.wampserver.com/en/ Download > WampServer 64 bits (x64) 3.3.7 > You can download it directly. ...
... # Démarrer l'installeur # Suivre les instructions ...
... https://fonts.google.com/ Search Fonts > Akronim > Get Font > Télécharger ...
... # Décompresser la police Google Fonts Extraire > Akronim.zip > Akronim-Regular.ttf # Copier la police Google Fonts dans le répertoire de projet [webroot]/libs/google-fonts/akronim/Akronim-Regular.ttf # Créer et éditer le fichier (font.css) # Permettant de charger la police Google Fonts [webroot]/libs/google-fonts/akronim/font.css ...
... @font-face { font-family: "Akronim"; font-style: normal; src: url("Akronim-Regular.ttf"); } ...
... https://fontawesome.com/v4/ Get Started > No thanks, I'll just stick with Font Awesomme 4 Download > No thanks, just download Font Awesome 4 ...
... # Décompresser Font Awesome Extraire > font-awesome-4.7.0.zip # Configurer Font Awesome dans le répertoire de projet [webroot]/libs/font-awesome/css/font-awesome.min.css [webroot]/libs/font-awesome/fonts/fontawesome-webfont.woff2 ...
... Bouton Windows > Wampserver64 > Oui ...
... Barre des tâches > WampServer > Clic gauche > Redémarrer les services ...
... # Ouvrir le fichier de configuration Apache C:\wamp64\bin\apache\apache2.4.54.2\conf\httpd.conf ... # Autoriser les machines virtuelles # Décommenter la ligne ci-dessous LoadModule vhost_alias_module modules/mod_vhost_alias.so ... # Inclure le fichier de configuration des machines virtuelles # Décommenter les lignes ci-dessous Include conf/extra/httpd-vhosts.conf ...
... # Ouvrir le fichier de configuration Apache C:\wamp64\bin\apache\apache2.4.54.2\conf\httpd.conf ... # Configurer le numéro de port # Ajouter les lignes ci-dessous Listen 0.0.0.0:8000 Listen [::0]:8000 ...
... # Ouvrir le fichier de configuration des machines virtuelles C:\wamp64\v3.3.0\bin\apache\apache2.4.54.2\conf\extra\httpd-vhosts.conf ... # Configurer le répertoire racine du serveur # Ajouter les lignes ci-dessous ... <VirtualHost *:8000> ServerName readyweb.com ServerAlias www.readyweb.com ServerAdmin contact@readyweb.com DocumentRoot " C:/.../webroot/" <Directory "C:/.../webroot/"> Options All AllowOverride All Order allow,deny allow from all Require all granted </Directory> </VirtualHost> ... # Notre serveur web sera accessible à l'adresse ci-dessous http://localhost:8000/ ... # Nous laisserons le port 80 par défaut # Pour la page d'accueil de WampServer ... <VirtualHost *:80> ServerName localhost ServerAlias localhost DocumentRoot "${INSTALL_DIR}/www" <Directory "${INSTALL_DIR}/www/"> Options +Indexes +Includes +FollowSymLinks +MultiViews AllowOverride All Require local </Directory> </VirtualHost> ...
... # Ouvrir le fichier de configuration des machines virtuelles C:\wamp64\v3.3.0\bin\apache\apache2.4.54.2\conf\extra\httpd-vhosts.conf ... # Configurer la variable d'environnement # Ajouter les lignes ci-dessous ... <VirtualHost *:8000> ServerName readyweb.com ServerAlias www.readyweb.com ServerAdmin contact@readyweb.com DocumentRoot " C:/.../webroot/" SetEnv ENV_TYPE "TEST" <Directory "C:/.../webroot/"> Options All AllowOverride All Order allow,deny allow from all Require all granted </Directory> </VirtualHost> ...
... Barre des tâches > WampServer > Clic gauche > PHP > Version > 8.2.0 ...
... # Ouvrir la page d'accueil de WampServer Barre des tâches > WampServer > Clic gauche > Localhost # Ouvrir la page PHP INFO Outils > phpinfo() ...
... # Ouvrir la page de téléchargement de Xdebug https://xdebug.org/ > Install > Installation > (Windows), with help from a wizard > Follow (these instructions) to get Xdebug installed. # Copier le contenu de la page PHP INFO [page-php-info] > Touche (Ctrl + A) > Pour tout sélectionner [page-php-info] > Touche (Ctrl + C) > Pour tout copier # Coller le contenu dans l'assistant d'installation de Xdebug [xdebug-installation-wizard] > Touche (Ctrl + V) > Pour tout coller # Démarrer l'analyse du contenu de la page PHP INFO Cliquer sur le bouton > Analyse my phpinfo() output # Télécharger la librairie dynamique Xdebug Instructions > Download > php_xdebug-3.4.1-8.2-ts-vs16-x86_64.dll ...
... # Renommer la librairie dynamique Xdebug php_xdebug-3.4.1-8.2-ts-vs16-x86_64.dll > php_xdebug.dll # Copier la librairie dynamique Xdebug Copier > php_xdebug.dll # Coller la librairie dynamique Xdebug Coller > C:\wamp64\v3.3.0\bin\php\php8.2.0\zend_ext\ php_xdebug.dll ...
... # Ouvrir le fichier de configuration PHP pour Apache C:\wamp64\v3.3.0\bin\php\php8.2.0\phpForApache.ini ... # Configurer la librairie dynamique Xdebug ... # Redémarrer les services de WampServer ...
... [xdebug] zend_extension="C:\wamp64\v3.3.0\bin\php\php8.2.0\zend_ext\php_xdebug.dll" xdebug.mode=debug,develop xdebug.start_with_request=true ;xdebug.output_dir ="C:\wamp64\v3.3.0\tmp" ;xdebug.show_local_vars=0 ;xdebug.log="C:\wamp64\v3.3.0\logs\xdebug.log" ;xdebug.log_level : 0 Criticals, 1 Connection, 3 Warnings, 5 Communication, 7 Information, 10 Debug Breakpoint ;xdebug.log_level=7 ;xdebug.profiler_output_name=trace.%H.%t.%p.cgrind ;xdebug.use_compression=false ...
... # Installer l'extension PHP Xdebug Extensions > PHP Xdebug > Install # Créer un lanceur de débogage Debug > create a launch.json file > PHP ... # Ouvrir le lanceur de débogage .vscode\launch.json ... # Configurer le débogueur Xdebug ...
... { "version": "0.2.0", "configurations": [ { "name": "Listen for Xdebug", "type": "php", "request": "launch", "port": 9003 } ] } ...
... # Sélectionner des points d'arrêts Cliquer sur le bord gauche d'une ligne de code > Pour placer un point d'arrêt # Démarrer le débogueur Debug > Listen for Xdebug > Run ...
... # Ouvrir la page web http://localhost:8000/ ... # L'exécution du script PHP s'arrête # Au premier point d'arrêt dans VSCode ... # Utiliser les outils de navigation # Pour déboguer le projet pas à pas ...
... # Methode 1 # Afficher le contenu de la page web [page-web] > Clic droit > Afficher le code source de la page ... # Methode 2 # Afficher le contenu de la page web [page-web] > Touche (Ctrl + U) ...
... # Méthode 1 # Ouvrir les outils de développement Paramètres > Plus d'outils > Outils de développement ... # Méthode 2 # Ouvrir les outils de développement Touche (Ctrl + MAJ + I) ...