Section courante

A propos

Section administrative du site

 Langage  Installation  Elément  Tutoriel  Aide 
ABAP/4
Ada
Assembleur
Assembly & bytecode
ASP (Active Server Pages)
Basic
C
C++
C# (C Sharp)
Cobol
ColdFusion
Fortran
HTML
Java
JavaScript
LISP
Logo
LotusScript
Oberon
Pascal
Perl
PHP
PL/1
Prolog
Python
Rebol
REXX
Ruby
Rust
SAS
NoSQL
SQL
Swift
X++ (Axapta)
GNAT
SMALLAda
VHDL
Assembleur 370
Assembleur 1802
Assembleur 4004
Assembleur 6502
Assembleur 6800
Assembleur 68000
Assembleur 8080 et 8085
Assembleur 8089
Assembleur 80x86
Assembleur AGC4
Assembleur ARM
Assembleur DPS 8000
Assembleur i860
Assembleur Itanium
Assembleur MIPS
Assembleur PDP-11
Assembleur PowerPC
Assembleur RISC-V
Assembleur SPARC
Assembleur SuperH
Assembleur UNIVAC I
Assembleur VAX
Assembleur Z80
Assembleur Z8000
Assembleur z/Architecture
ASSEMBLER/MONITOR 64
Micol Assembler
GFA Assembler
A86
MASM (Macro Assembler)
TASM (Turbo Assembler)
CIL
Jasmin
LLVM
MSIL
Parrot
P-Code (PCode)
SWEET16
G-Pascal
ASP 1.0
ASP 2.0
ASP 3.0
ASP.NET
ASP.NET Core
ABasiC (Amiga)
Adam SmartBASIC
Altair BASIC
AmigaBASIC (Amiga)
AMOS Basic (Amiga)
Atari Basic (Atari 400, 600 XL, 800, 800XL)
Basic Apple II (Integer BASIC/APPLESOFT)
Basic Commodore 64 (CBM-BASIC)
Basic Commodore 128 (BASIC 7.0)
Basic Commodore VIC-20 (CBM-BASIC 2.0)
Basic Coco 1 (Color Basic)
Basic Coco 2 (Extended Color Basic)
Basic Coco 3 (Extended Color Basic 2.0)
BASICA (PC DOS)
Basic Pro
BBC BASIC
Blitz BASIC (Amiga)
DarkBASIC
Dartmouth BASIC
GFA-Basic (Atari ST/Amiga)
GWBASIC (MS-DOS)
Liberty BASIC
Locomotive BASIC (Amstrad CPC)
MSX-Basic
Omikron Basic (Atari ST)
Oric Extended Basic
Power Basic
Quick Basic/QBasic (MS-DOS)
Sinclair BASIC (ZX80, ZX81, ZX Spectrum)
ST BASIC (Atari ST)
Turbo Basic
Vintage BASIC
VBScript
Visual Basic (VB)
Visual Basic .NET (VB .NET)
Visual Basic pour DOS
Yabasic
BeckerBASIC
SIMONS' BASIC
Basic09 d'OS-9
Disk Extended Color Basic
Basic09 d'OS-9
Disk Extended Color Basic
Access
Excel
Visual Basic pour Windows
Visual Basic .NET pour Windows
C Shell Unix (csh)
C pour Amiga
C pour Atari ST
C pour DOS
C pour Falcon030
C pour GEMDOS (Atari ST)
C pour Linux
C pour PowerTV OS
C pour OS/2
C pour Unix
C pour Windows
Aztec C
CoCo-C
GNU C
HiSoft C
IBM C/2
Introl-C
Lattice C
Microsoft C
MinGW C
MSX-C
Open Watcom C
OS-9 C Compiler
Pure C
Quick C
Turbo C
HiSoft C for Atari ST
HiSoft C for CP/M (Amstrad CPC)
C++ pour OS/2
C++ pour Windows
Borland C++
C++Builder
IBM VisualAge C++
Intel C++
MinGW C++
Open Watcom C++
Symantec C++
Turbo C++
Visual C++
Visual C++ .NET
Watcom C++
Zortech C++
C# (C Sharp) pour Windows
Apple III Cobol
Microsoft Cobol
BlueDragon
Lucee
OpenBD
Railo
Smith Project
Microsoft Fortran
WATFOR-77
CSS
FBML
Open Graph
SVG
XML
XSL/XSLT
LESS
SASS
GCJ (GNU)
JSP
Jython
Visual J++
Node.js
TypeScript
AutoLISP
ACSLogo
LotusScript pour Windows
Amiga Oberon
Oberon .NET
Apple Pascal
Delphi/Kylix/Lazarus
Free Pascal
GNU Pascal
HighSpeed Pascal
IBM Personal Computer Pascal
Lisa Pascal
Maxon Pascal
MPW Pascal
OS-9 Pascal
OSS Personal Pascal
Pascal-86
Pascal du Cray Research
Pascal/VS
Pascal-XT
PURE Pascal
QuickPascal
RemObjets Chrome
Sun Pascal
THINK Pascal
Tiny Pascal (TRS-80)
Turbo Pascal
UCSD Pascal
VAX Pascal
Virtual Pascal
Turbo Pascal for CP/M-80
Turbo Pascal for DOS
Turbo Pascal for Macintosh
Turbo Pascal for Windows
CodeIgniter (Cadre d'application)
Drupal (Projet)
Joomla! (Projet)
Phalanger (PHP .NET)
phpBB (Projet)
Smarty (balise)
Twig (balise)
Symfony (Cadre d'application)
WordPress (Projet)
Zend (Cadre d'application)
PL360
PL/M-80
PL/M-86
Turbo Prolog
CPython
IronPython
Jython
PyPy
AREXX
Regina REXX
JMP
Btrieve
Cassandra
Clipper
CouchDB
dBASE
Hbase
Hypertable
MongoDB
Redis
Access
BigQuery
DB2
H2
Interbase
MySQL
Oracle
PostgreSQL
SAP HANA
SQL Server
Sybase
U-SQL
Installation de PHPDevShell
Installation des plugiciels
Mise à niveau de PHPDevShell
Introduction
Configuration avancée
Gestionnaire de tâches Cronjob
À propos des fichiers «.local» et des possibilités de remplacement
Référence des fichiers
Les premiers pas
MVC
Contrôleur
Modèles
Préface
Notes légales
Dictionnaire
Recherche

MVC

Le PHPDevShell fournit une excellente structure MVC standard pour vous permettre de garder votre code propre et organisé. Vous pouvez utiliser votre propre style MVC préféré ou le nôtre, ce qui est pratique. Le respect de la formule permettra aux autres de se sentir à l'aise avec votre code.

La structure MVC

Il convient de noter que PHPDevShell partage ses ressources et ses objets avec tout ce qui se trouve dans sa structure, ceux-ci sont généralement divisés en groupes d'objets et sont disponibles sous la forme (Il existe 7 objets principaux que vous pouvez utiliser dans PHPDevShell pour vous aider dans le développement, à savoir) :

  1. $this->db
  2. $this->navigation
  3. $this->security
  4. $this->template
  5. $this->user
  6. $this->tagger
  7. $this->core 

vous disposez également d'une gamme de fonctions PU_utility. La plupart des méthodes de PHPDevShell racontent une histoire comme celle-ci :

  1. $this->user->isRoot(), $this->user->belongToGroup() or $this->navigation->createMenuId()

Jetez un oeil à la documentation de l'API pour voir un aperçu des classes et de leurs méthodes, recherchez spécifiquement les 7 objets principaux. À l'intérieur d'un plugiciel, vous disposez de plusieurs dossiers pour vous aider dans votre structure, à savoir :

config

Le dossier config contient le fichier de configuration XML des plugiciels pour l'installation et la désinstallation d'un plugiciel.

controllers

Il s'agit du conteneur des contrôleurs qu'un élément de menu appellera pour exécuter votre script. Le contrôleur est conçu comme un point d'exécution utilisant des logiques de base pour rassembler des requêtes/modèles et des vues. À l'aide de l'interface utilisateur du menu Admin, vous pouvez affecter un élément de contrôleur à un menu et il sera disponible à partir du système de navigation pour être exécuté.

Un Controller peut être nommé n'importe quoi, cela peut être aussi simple que :

controllers/some-item.php

À l'intérieur du contrôleur, vous commenceriez par ceci :

  1. /**
  2.  * CONTROLLER: Lisez-moi simple pour présenter MVC dans les plugiciels PHPDevShells.
  3.  *
  4.  * @author Sylvain Maltais
  5.  * @return string
  6.  */
  7. class ReadMeExample extends PHPDS_controller
  8. {
  9.  
  10.     /**
  11.      * Nous commençons toujours par remplacer la méthode execute du contrôleur.
  12.      * @author Sylvain Maltais
  13.      */
  14.     public function execute()
  15.     {
  16.         /* Un titre par défaut. */
  17.         $this->template->heading(_('Oooh un exemple de plugiciel'));
  18.         /* Quelques informations concernant ce noeud. */
  19.         $this->template->info(_('The best way to learn is to learn by example.'));
  20.  
  21.         /* Tout votre code... */
  22.  
  23.         /* invokeQuery est le modèle de PHPDevShell. */
  24.         /* Chaque requête est dans sa propre classe. */
  25.         /* Il peut y avoir un modèle pour chaque contrôleur. Le modèle se trouvera donc sous ExamplePlugin/models/readme-example.query.php */
  26.         $some_data_call = $this->db->invokeQuery('ExamplePlugin_someData');
  27.  
  28.         /* Voici comment charger un plugiciel, dans ce cas, nous avons enregistré la classe de plugiciel «views» et l'appelons. */
  29.         /* Ce plugiciel utilise Smarty pour séparer le HTML du code. */
  30.         $view = $this->factory('views');
  31.  
  32.         /* Nous définissons maintenant certaines variables dans la VUE de PHPDevShell, cela divise le code et le HTML. */
  33.         $view->set('some_variable', $some_data_call);
  34.         $view->set('developer_name', 'Sylvain Maltais');
  35.  
  36.         /* Vue de sortie. */
  37.         /* La vue porte également le même nom que le contrôleur, vous pouvez trouver la vue dans ExamplePlugin/views/readme-example.tpl */
  38.         $view->show();
  39.     }
  40. }

models

Le modèle est un objet de données obligatoire. Par exemple, si nous avons besoin des noms de tous mes élèves de 3e année, nous appellerons un modèle via une requête pour demander ces données, le modèle me les renverra. Les modèles ne doivent pas nécessairement être une requête de base de données, il peut s'agir de n'importe quel type de données provenant de n'importe quelle source. En général, les modèles sont appelés avec :

  1. /* invokeQuery peut être utilisé n'importe où en réalité, contrôleur, classes, modèles. */
  2. $this->db->invokeQuery('ExamplePlugin_editExampleQuery', 10);
  3. /* Le 10 signifie simplement que nous appelons l'ID 10. */

Le modèle sera chargé paresseusement une fois nécessaire. Le modèle avec tous ses objets est nommé en relation avec son contrôleur appelé "some-item.php" pourrait avoir un modèle dans :

models/some-item.query.php

et ont généralement des objets modèles comme ceux-ci :

  1. class ExamplePlugin_editExampleQuery extends PHPDS_query {
  2.     protected $sql = "SELECT id, example_name, example_note, alias FROM _db_ExamplePlugin_example WHERE id = %u";
  3.     protected $singleRow = true;
  4. }

views

Les vues constituent la mise en page finale du navigateur. PHPDevShell tente de conserver cette dernière dans son format HTML le plus pur en utilisant un plugiciel appelé Smarty. Là encore, vous pouvez créer votre propre plugiciel de vues, mais c'est une manière très propre de procéder. Si cela ne vous dérange pas de mélanger HTML et PHP, vous pouvez simplement appeler votre propre fichier de vue PHP à partir de votre contrôleur, mais c'est vraiment à vous de décider.

Les vues sont également chargées en différé par rapport au nom du contrôleur. Une vue typique ressemblera à ceci :

views/some-item.tpl

il sera appelé depuis le contrôleur comme dans l'exemple de contrôleur ci-dessus et ressemblera à ceci :

  1. <h2>Bonjour {$developer_name}, bienvenue dans l'exemple de plugiciel</h2>

includes

Cela peut contenir des classes d'aide pour aider votre contrôleur ou vos modèles à réaliser des tâches répétitives, une classe typique ressemblera à ceci et peut également être chargée paresseusement. Le nom de la classe comme "myClass" doit être le même que le nom du fichier dans le dossier d'inclusions, comme myClass.class.php.

une classe peut également être enregistrée dans le fichier de configuration des plugiciels. Cela présente de grands avantages, n'importe quel plugiciel peut partager cette classe avec une grande facilité, et une classe peut être remplacée par une classe du même nom et d'un rang plus élevé dans le registre.

Une classe typique commencera comme ceci :

  1. class myClass extends PHPDS_dependant {
  2.     public function example() 
  3.     {
  4.         /* Toutes les ressources sont disponibles. */
  5.         $this->template->ok('Some ok message');
  6.     }   
  7. }

Cela peut ensuite être appelé de n'importe où en utilisant :

  1. $myClass = $this->factory('myClass');
  2. $myClass->example();

resources

Le dossier Resources est destiné aux plugiciels appellant des classes ou des API tierces. Par exemple, PHPDevShell utilise l'éditeur wysiwyg TinyMCE. Bien évidemment, PHPDS utilise ses propres classes pour tout initialiser, mais le TinyMCE en JavaScript lui-même est appelé depuis le dossier resource. Cela signifie que le téléchargement de TinyMCE a été copié dans le dossier resources.

images

Contient simplement toutes vos images, logos et icônes du panneau de contrôle liés à votre plugiciel.

language

Le language contient des traductions et des extractions de langues fictives pour vos plugiciels.



PARTAGER CETTE PAGE SUR
Dernière mise à jour : Mardi, le 15 octobre 2024