Maison >développement back-end >tutoriel php >Une introduction détaillée au meilleur développement secondaire de cms
◆Développement secondaire
Qu'est-ce que le développement secondaire ?
Le développement secondaire, en termes simples, consiste à utiliser un logiciel existant. Apporter des modifications personnalisées, développez les fonctions et obtenez les fonctions et les effets souhaités. De manière générale, le cœur du système d'origine ne sera pas modifié.
Pourquoi le développement secondaire ?
Avec le développement continu des technologies de l'information, une série d'excellents ouvrages open source ont émergé dans l'industrie informatique, et leurs auteurs ou individus, ou une équipe de projet, ou
une entreprise de logiciels. La sélection et l'application de ces excellents logiciels open source, et la réalisation d'un développement secondaire qui répond aux besoins de l'entreprise sur cette base, permettront aux entreprises d'économiser des coûts d'information
(coûts de temps et coûts de développement), et en même temps, cela peut également apporter une garantie technique. C'est ce qu'on entend souvent : debout sur les épaules de géants, vous verrez
plus loin. Par conséquent, de nombreuses entreprises nationales ont besoin de talents de développement secondaire.
Comment faire du développement secondaire ?
Tout d'abord, vous devez avoir les bases linguistiques du langage utilisé dans ce produit open source. le plus basique.
Deuxièmement, vous devez vous familiariser avec les fonctions et les utilisations de ce produit open source. Parce que vous le connaissez, vous saurez ce qu'est une exigence, ce que vous souhaitez changer
. , et qu'est-ce qu'il est fourni avec le système, comment puis-je le changer ?
Troisièmement, vous devez être familier avec la structure des données, la structure du code, la structure du cadre système de ce produit open source, quel est le cœur et où se trouvent les fonctions subsidiaires.
Pour faire simple, il s'agit d'une familiarité avec les bases de données, la logique du code et les répertoires de fichiers.
Quatrièmement, en fonction de vos besoins, utilisez ensuite le cœur du produit open source pour étendre et modifier le système afin de répondre à vos besoins. Présentez les bases du développement secondaire des produits open source PHP
. Exigences :
Tout d'abord, les exigences de base : HTML (doit être très familier avec celui-ci), PHP (peut comprendre le code et écrire certains petits systèmes, tels que des forums de discussion, des petits CMS),
Mysql (connaître au moins une base de données), Javascript (peut le comprendre et modifier certains codes existants), p+Css (peut ajuster l'interface et comprendre comment CSS
est utilisé)
Deuxièmement, être familier avec l'utilisation de produits open source, comme Dedecms. Vous devez savoir comment vous connecter, comment créer une nouvelle colonne, comment ajouter des articles, comment utiliser les balises de modèles, le concept et l'utilisation des modèles, etc. Fonction
Troisièmement, vous devez être familier avec la structure de la base de données de ce produit open source et comprendre le contenu des fichiers principaux qu'il contient, tels que : comment utiliser la classe de base de données et comment implémenter la sécurité couramment utilisée filtrage, comment utiliser le moteur de modèles et d'autres contenus de base. Vous devez également connaître la structure des répertoires de ce produit open source, c'est-à-dire savoir où sont placés les modèles, où sont placés les contrôles, où sont placés les styles, etc.
Quatrième , familiarisez-vous avec vos besoins, interprétez-les, puis déterminez comment modifier et étendre ce produit open source
Que pouvez-vous obtenir après le développement secondaire ?
Vous pouvez répondre à vos besoins et vous pouvez accumulez de l’expérience. L’expérience ici est la vôtre et celle des autres. Le soi-disant bénéfice des autres signifie que lorsque vous effectuez ce deuxième développement, vous pouvez absorber l'essence de ce système puis l'intégrer dans votre propre réflexion, et vous pouvez également résumer l'expérience de l'architecture du projet. Il y a un dicton
qui est bon, à savoir : les gens intelligents considéreront l'expérience d'échec des autres comme leur propre expérience, tandis que les gens stupides se considéreront comme leur propre expérience après avoir vécu d'innombrables échecs
Ma propre expérience. Le développement secondaire n'est pas seulement le développement, mais plus important encore, absorber l'essence, résumer l'expérience, redresser les idées, éviter les détours et s'améliorer.
Debout sur les épaules de géants, vous verrez plus loin !!! ◆Développement secondaire DedeCMS
Dans l'ordre pour permettre à plus de gens de comprendre le développement secondaire et de comprendre plus facilement le développement secondaire de DedeCMS, ce qui suit présentera brièvement quelques bases et aperçus du développement secondaire de DedeCMS
Fondation nécessaire pour le développement secondaire de DedeCMS :
· Très familier avec HTML
· Familier avec la mise en page de p+CSS
· Base PHP solide, Familier avec la programmation structurée , comprendre la POO, et être capable de comprendre et d'utiliser
· Familier avec MYSQL, maîtriser le langage SQL
Processus d'apprentissage du développement secondaire DedeCMS· Comprendre ce qu'est le CMS
· Se familiariser avec les fonctions de DedeCMS (telles que la classification des colonnes, la gestion des documents, l'utilisation de modèles, les paramètres système et autres fonctions couramment utilisées)
· Maîtriser les modèles de Utilisation et principes des balises DedeCMS
· Analyse de la structure des répertoires DedeCMS Familiarisé avec les fichiers principalement contenus dans chaque dossier, afin que vous sachiez quels fichiers dans quel dossier modifier lors du développement secondaire
Résumé de la structure du répertoire :./a Chemin de stockage des fichiers générés
./data Fichier de cache et centre de données
/admin Gérer l'arrière-plan data
/backupdata données de sauvegarde /fichier de cache de cache
/données de liaison de niveau enums, JS, fichier de cache de type énumération
/ js JS couramment utilisé
/mark fichiers liés au filigrane
/fichier d'installation du module module
/rss Rss liés
/sessions Chemin de stockage de la session
/textdata text data
/tplcache template cache
/uploadtmp upload file cache location
/ziptmp zip package décompression cache location
…
Analyse de la structure des fichiers DedeCMS
Familiarisé avec les fonctions de base de chaque fichier pour faciliter les modifications Après avoir connu la fonction générale de chaque fichier, vous pouvez facilement modifier les fichiers
Résumé de la structure du fichier :
fichier de configuration de la base de données common.inc.php config.cache.bak.php sauvegarde de la configuration du système en arrière-planconfig.cache.inc.php Cache du fichier de configuration du système backend fichier de cache obscurci de la collection downmix.data.php mysql_error_track.inc Journal des erreurs MYSQL safequestions.php Sécurité Questions Sitemap.html Plan du site sys_pay.cache.php Configuration de la passerelle de paiement template.rand.php Paramètres aléatoires du modèle ……· Analyse de la structure de la base de données DedeCMS, connaître au moins le rôle de chaque table Familiariser avec le rôle de chaque table, comprendre la conception de plusieurs tables principales et la signification des champs, afin qu'elle est facile à obtenir Une fois les nouvelles exigences remplies, vous pouvez rapidement déterminer s'il convient d'ajouter des paragraphes ou de créer un nouveau tableau pour le traitement. Dans le même temps, vous pouvez également comprendre les idées de conception de base de données de DedeCMS et ajouter des idées de conception utiles à votre propre système. · Contrôle des processus DedeCMS et analyse de certains fichiers de base Familier avec certains contrôles de processus courants tels que la connexion, l'enregistrement, la gestion des documents, le contrôle des autorisations, la gestion de la classification, les paramètres du modèle, etc. Disséquer plusieurs fichiers de base pour comprendre leurs compétences en programmation et leurs mécanismes de sécurité· Développement de plug-ins DedeCMS (plug-ins **** et plug-ins embarqués) Familier avec l'écriture de deux plug-ins, l'import et l'export de plug-ins et l'utilisation de modèles de correspondance de plug-ins
◆Développement secondaire Ecshop
Apprentissage de la méthode de développement secondaire d'Ecshop
Ces dernières années, avec le développement d'Internet, le commerce électronique s'est également développé, ainsi que le commerce électronique B2B, C2C et B2C. les modèles ont également continué à mûrir. À cette époque, a donné naissance à de nombreux produits open source PHP liés au commerce électronique. En termes de B2C, il existe des produits bien connus dans le pays et à l'étranger tels que Ecshop, Zencart, Magento, etc. Présentons brièvement le processus d'apprentissage du développement secondaire d'Ecshop et quelques éléments auxquels il faut prêter attention :Les bases nécessaires au développement secondaire d'Ecshop :
· Très familier avec HTML· Familier avec la mise en page de p+CSS · Base PHP solide, familier avec la programmation structurée, comprendre la POO et être capable de comprendre et d'utiliser · Familier avec le moteur de modèles Smarty · Familier avec le langage MYSQL et SQL· Processus d'apprentissage du développement secondaire Ecshop
· Familier avec les bases concepts du e-commerce · Connaître les fonctions de base d'EcShop (types de produits, catégories de produits, paramètres d'attributs de produits, utilisation des activités promotionnelles, etc.) · Maîtriser la structure de la base de données et idées de conception de bases de données d'Ecshop · Familier avec le modèle ER, l'établissement d'entités et de relations Familier avec le rôle de chaque table, comprendre la conception de plusieurs tables principales et la signification de champs, afin que vous puissiez juger rapidement s'il convient d'obtenir de nouvelles exigences. Ajoutez des paragraphes ou créez un nouveau tableau pour le traitement. Dans le même temps, vous pouvez également comprendre les idées de conception de base de données d'Ecshop et ajouter des idées de conception utiles à votre propre système · Analyse de la structure des fichiers et analyse du code Familiarisé avec certaines connexions, inscriptions et gestion de documents , contrôle des autorisations, gestion de la classification, type de produit et autres contrôles de processus courants. Disséquer plusieurs fichiers de base pour comprendre leurs compétences en programmation et leurs mécanismes de sécurité· Analyse de la structure des fichiers Ecshop : includescls_captcha.php : classe d'image du code de vérification includecls_ecshop.php : Classe de baseincludescls_ecshop.php(56) : méthode de compilation de mot de passe ;includescls_rss.php : classe RSSincludescls_smtp.php : classe de messagerie SMTP includeinc_constant.php : constante includeinit.php : fichier commun front-end includelib_common.php : bibliothèque de fonctions commune includelib_goodscat.php : front-end Bibliothèque de fonctions publiques includelib_insert.php : Bibliothèque de fonctions de contenu dynamique includelib_main.php : Bibliothèque de fonctions publiques frontales includelib_payment.php : Bibliothèque de fonctions d'interface de paiementIncludeiconvcls_iconv.php : classe de conversion de jeu de caractères Includedipcls_ip.php : classe de requête de localisation IP includemodulesintegratesdiscuz.php : classe de traitement des données des membres includemodulesintegratesecshop.php : membre Cours de traitement des données Remplacement de modèle Ecshop Familier avec l'utilisation de la version simplifiée de Smarty, intégrant votre propre interface, compétences de remplacement de modèle Ecshop Exemples de développement secondaire Ecshop
La fonction de basculement entre le chinois et l'anglais, la fonction de vente flash, la production de modèles JD.com, etc.
Objectifs d'apprentissage :
1 .Utilisera Ecshop pour le développement secondaire 2. Passera aux modèles ordinaires et modifiera certaines fonctions 3. Apprenez de l'expérience de développement à l'intérieur Maîtrisez les connaissances de base-》. Imitez certaines méthodes d'écriture à l'intérieur -》Modifiez à l'intérieur du modèle (créez votre propre modèle de développement)Maîtrisez les compétences en programmation et en conception de systèmes dans Ecshop
◆Analyse de la technologie de mise en cache
Analyse de la technologie de mise en cache PHP commune [Version conceptuelle]
Dans la plupart des cas, notre site Web utilisera une base de données comme conteneur pour le stockage des données du site. Lorsque vous exécutez une requête SQL, le processus typique est le suivant : vous connecter à la base de données -> préparer la requête SQL - > envoyer la requête à la base de données - > Cependant, certaines données de la base de données
sont complètement statiques ou changent rarement. Le système de mise en cache mettra en cache les résultats de la requête SQL dans un système de stockage plus rapide
, évitant ainsi les opérations fréquentes de la base de données. le temps d'exécution du programme et la mise en cache des résultats des requêtes vous permet également de les traiter ultérieurement.
Technologie de mise en cache couramment utilisée
Cache de données : le cache de données mentionné ici fait référence au cache de requêtes de base de données à chaque accès à une page, les données mises en cache correspondantes seront détectées en premier
<.> existe. S'il n'existe pas, connectez-vous à la base de données, obtenez les données, sérialisez les résultats de la requête et enregistrez-les dans le fichier À l'avenir, les mêmes résultats de la requête seront obtenus directement à partir de. le fichier cache. Cache de page : Chaque fois que vous accédez à une page, il vérifiera d'abord si le fichier de page mis en cache correspondant existe. S'il n'existe pas, connectez-vous à la base de données et récupérez les données, <.>Affichez la page et générez en même temps un fichier de page mis en cache, afin que le fichier de page soit effectif lors de votre prochaine visite. (Les moteurs de modèles et certaines
classes de cache courantes sur Internet ont généralement cette fonction)
Cache mémoire :
Je ne le présenterai pas ici. Ce n'est pas le sujet de cet article. Une brève mention :
Memcached est un système de mise en cache d'objets à mémoire distribuée hautes performances utilisé pour réduire la charge de la base de données et améliorer la vitesse d'accès dans les applications dynamiques.
dbcached est un système de cache mémoire de base de données clé-valeur distribué basé sur Memcached et NMDB.
Bien que la technologie de mise en cache ci-dessus puisse bien résoudre le problème des requêtes fréquentes dans la base de données, son inconvénient est que les données ne sont pas opportunes. Je donne ici les méthodes que j'utilise couramment dans le projet
:
Cache déclenché par l'heure :
Vérifiez si le fichier existe et si l'horodatage est inférieur à l'heure d'expiration définie. Si l'horodatage de modification du fichier est inférieur à l'horodatage actuel moins l'horodatage d'expiration
<.> S'il est volumineux, alors utilisez le cache, sinon mettez à jour le cache. Ne jugez pas si les données doivent être mises à jour dans le délai défini et mettez à jour le cache après le délai défini. Ce qui précède ne peut être utilisé que lorsque les exigences de rapidité ne sont pas élevées, sinon veuillez voir ci-dessous. Mise en cache déclenchée par le contenu : Lorsque des données sont insérées ou mises à jour, la mise à jour du cache est forcée. Ici, nous pouvons voir que lorsqu'une grande quantité de données doit être mise à jour fréquemment, des opérations de lecture et d'écriture sur disque finiront par être impliquées. Comment le résoudre ? Dans mes projets quotidiens , je ne mets généralement pas en cache tout le contenu, mais je mets en cache certains contenus qui ne changent pas fréquemment pour résoudre le problème. Mais en cas de charge importante, il est préférable d'utiliser la mémoire partagée comme système de cache. À ce stade, la mise en cache PHP peut être une solution, mais son inconvénient est que, comme chaque requête doit encore être analysée par PHP, sous forte charge, le problème d'efficacité est encore plus grave que le problème d'efficacité, auquel cas la mise en cache statique peut être utilisée. Cache statique Le cache statique mentionné ici fait référence au cache HTML. Le cache HTML n'a généralement pas besoin de déterminer si les données doivent être mises à jour, car il est généralement utilisé dans le domaine où HTML. est utilisé Généralement, les pages dont le contenu ne change pas fréquemment. Lorsque les données sont mises à jour, forcez simplement la mise à jour du code HTML. En fait, un système de mise en cache implique de nombreux problèmes. Je ne présenterai ici que mes idées habituelles de mise en cache, et je ne présenterai pas l'utilisation de logiciels pour implémenter la mise en cache et écrire des codes spécifiques. Si vous avez de bonnes solutions, veuillez les soumettre ci-dessous et discutons-en ensemble.◆PHP utilise des commandes d'appel de fonctions
PHP utilise des fonctions telles que exec et system pour appeler des commandes systèmeFonctions intégrées de PHP exec et system peut être utilisé pour appeler des commandes système (commandes shell), et bien sûr passthru, escapeshellcmd et d'autres fonctions.
Dans de nombreux cas, l'utilisation des fonctions exec, system et autres de PHP pour appeler des commandes système peut nous aider à terminer notre travail mieux et plus rapidement. Par exemple, l'auteur exécutif m'a beaucoup aidé lors du traitement par lots de fichiers .rar il y a deux jours. Aujourd'hui, je vais trier les fonctions du système d'appel couramment utilisées et partager mon expérience avec tout le monde. Remarque : Si vous souhaitez utiliser ces deux fonctions, le mode sans échec dans php.ini doit être désactivé, sinon php ne permettra pas à la commande système d'être appelée pour des raisons de sécurité. Tout d'abord, jetons un œil à l'explication de ces deux fonctions dans le manuel PHP : exec --- exécuter des programmes externes Syntaxe : string exec ( commande string [, array &output [ , int &return_var]] ) Explication : exec() exécute la commande donnée, mais elle ne produit rien, elle renvoie simplement la dernière ligne du résultat de la commande , commeSi vous devez exécuter une commande et obtenir toutes les données de la commande, vous pouvez utiliser la fonction passthru().
Si le tableau de paramètres est donné, le tableau spécifié sera rempli avec chaque ligne sortie par la commande Remarque : si le tableau contient auparavant des éléments
, exec() Il sera ajouté. à la fin du tableau Si vous ne souhaitez pas que cette fonction ajoute des éléments, vous pouvez appeler unset() avant de passer le tableau à
exec().
Si les paramètres array et return_var sont donnés, la commande status renvoyée sera écrite dans cette variable.
Remarque : Si vous autorisez la transmission des données provenant des entrées de l'utilisateur à cette fonction, vous devez alors utiliser escapeshellcmd() pour vous assurer que
cet utilisateur ne peut pas tromper le système pour qu'il exécute un ordre arbitraire.
REMARQUE : Si vous utilisez cette fonction pour démarrer un programme et que vous souhaitez le quitter pendant qu'il s'exécute en arrière-plan, vous devez
vous assurer que la sortie du programme est redirigée) vers un fichier ou un flux de données de sortie, sinon PHP se bloquera jusqu'à la fin de l'exécution du programme
.
Système --- Exécuter des programmes externes et afficher la sortie
Syntaxe : string system ( string command [, int &return_var] )
Description :
système ( ) Exécutez la commande donnée et affichez le résultat. Si le paramètre return_var est donné, le code d'état de la commande exécutée sera écrit dans cette variable.
Remarque : Si vous autorisez la transmission des données provenant des entrées de l'utilisateur à cette fonction, vous devez alors utiliser escapeshellcmd() pour vous assurer que
cet utilisateur ne peut pas tromper le système pour qu'il exécute un ordre arbitraire.
REMARQUE : Si vous utilisez cette fonction pour démarrer un programme et que vous souhaitez le quitter pendant qu'il s'exécute en arrière-plan, vous devez
vous assurer que la sortie du programme est redirigée) vers un fichier ou un flux de données de sortie, sinon PHP se bloquera jusqu'à la fin de l'exécution du programme
.
Si PHP s'exécute en tant que module serveur, system() tentera d'effacer automatiquement le tampon de sortie du serveur Web après la sortie de chaque ligne.
Renvoie la dernière ligne de la commande en cas de réussite, false en cas d'échec.
Si vous devez exécuter une commande et obtenir toutes les données de la commande, vous pouvez utiliser la fonction passthru().
Ces deux éléments sont utilisés pour appeler des commandes du shell système,
La différence :
exec peut renvoyer tous les résultats d'exécution à la fonction $output (array), $status est le statut d'exécution, 0 est le succès, 1 est l'échec
Systerm n'a pas besoin de fournir la fonction $output, il renvoie le résultat directement, de même $return_var est le code d'état de l'exécution, 0 est le succès, 1 est
Pour l'échec
◆À propos de l'open source
Le plus grand succès de l'open source vient du Web
Le mouvement open source est très populaire et a a écrit une marque forte dans l’histoire du développement logiciel. Mais où est son impact le plus profond ? Quel est le
"projet" open source le plus réussi de l'histoire
En fait, dans l'ensemble, le Web n'est-il pas un mouvement open source ? Le plus grand succès ?
L'exemple le plus célèbre est peut-être LAMP derrière de nombreux sites Web dans des domaines cachés, à savoir Linux, Apache, MySQL et PHP. Mais quand vous y réfléchissez bien
, vous en trouverez plus.
Vous trouverez ci-dessous quelques projets open source qui font fonctionner le Web.
Navigateurs Web - Navigateurs Web
Sur le marché des navigateurs Web, bien que le navigateur IE du logiciel fermé de Microsoft occupe toujours une part importante, d'autres projets open source avec des fonctions similaires
A devenu populaire et continue de croître. Comme le navigateur Firefox de Mozilla (il est open source, ainsi que Flock et PaleMoon). Il existe également des navigateurs basés sur Webkit, comme Safari, mais le plus célèbre est Chrome.
Si vous incluez les réseaux mobiles, Webkit domine les navigateurs des téléphones mobiles iPhone, Android et Blackberry.
Logiciel de serveur Web-Logiciel de serveur Web
Jusqu'à présent, Apache est le logiciel de serveur réseau le plus utilisé. Il est open source, mais un logiciel de serveur léger appelé Nginx
. les pièces sont devenues populaires ces dernières années. En fait, deux des trois principaux logiciels de serveur Web sont open source (à l'exception d'IIS de Microsoft, qui occupe la deuxième place, mais il est loin d'être premier).
De plus, un grand nombre de logiciels sous-jacents côté serveur sont également open source. Par exemple, de nombreux sites Web à fort trafic utilisent Varnish comme couche de mise en cache entre les visiteurs du site Web et Memcached comme couche de mise en cache entre les bases de données du site Web. Ce ne sont là que deux exemples parmi tant d’autres.
Langages de script et frameworks web-Langages de script et frameworks web
La plupart des langages de programmation et de script utilisés sur Internet sont open source, comme PHP, Perl, Python, Ruby, etc.
Cependant, peu de sites Web sont entièrement construits à partir de zéro. Il n'est pas exagéré de dire qu'il existe des centaines de systèmes de gestion de contenu (CMS) et de frameworks Web open source
pour aider les développeurs, tels que WordPress, Drupal, Ruby on Rails, Django, Joomla, DedeCMS, Ecshop, etc. .
Bases de données-base de données
Le logiciel open source MySQL est de loin la base de données de sites Web la plus populaire, mais il existe d'autres logiciels open source avec des fonctions similaires, comme PostgreSQL, sans oublier les nombreuses bases de données « non relationnelles (NoSQL) » qui sont apparues récemment. .
Maintenant que nous parlons du logiciel sous-jacent, nous devons mentionner le système de base
sur lequel nous comptons chaque fois que nous utilisons Internet ou quoi que ce soit sur Internet :
DNS - Système de résolution de noms de domaine
Le Web (d'ailleurs l'ensemble d'Internet) n'est rien sans le système de résolution de noms de domaine. Comme nous le savons tous, le système de résolution de noms de domaine permet aux utilisateurs d'utiliser des noms de domaine
comme exemple.com au lieu d'adresses IP. BIND est à peu près le standard de facto pour les logiciels de serveur DNS (alias serveur de noms) et, comme vous
l'avez peut-être deviné maintenant, il est open source.
Systèmes d'exploitation serveur - Systèmes d'exploitation serveur
Tous les sites Web doivent fonctionner sur des serveurs, et c'est là que règne l'open source. Bien que Windows domine l'espace de bureau, la plupart des serveurs sur lesquels les sites Web fonctionnent
utilisent le système d'exploitation open source Linux. D'autres choix populaires sont freeBSD et OpenBSD.
La tentation de l'open source
Parce que dans de nombreux cas, les logiciels open source peuvent offrir les mêmes performances que les logiciels commerciaux fermés et sont gratuits, donc les logiciels open source
C'est pas étonnant qu'il soit si populaire. La gratuité est un prix difficile à battre.
Si le Web ne fonctionnait pas avec tous ces logiciels libres, il aurait probablement du mal à être largement accepté.
Notez que nous n’avons pas dit qu’il n’existait pas de logiciels fermés sur le Web, qui existe évidemment. Cependant, d'un point de vue statistique, la véritable exception à la domination du Web open source est la série de systèmes Windows de Microsoft.
Au-delà de cela, vous devez généralement creuser plus profondément pour trouver des technologies fermées plus propriétaires, comme les systèmes d'exploitation sur les routeurs et appareils similaires. Mais ça
c'est Internet, pas le Web.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!