En tant que développeur Web PHP de niveau intermédiaire à avancé et jeune (15 ans), dois-je créer un CMS entièrement nouveau pour mon site Web ou utiliser des logiciels prédéfinis tels que WordPress ou Drupal?
Je ne pense pas exactement que WordPress soit suffisamment puissant / évolutif pour pouvoir gérer ce que j'essaie de faire et après avoir bricolé un peu avec Drupal ces derniers jours, il ne semble tout simplement pas à la hauteur de mon goût et n'est pas non plus bien documenté, donc j'ai un peu de mal à le faire effectuer certaines tâches simples. J'aime à utiliser quelque chose comme ExpressionEngine, mais je n'ai pas l'argent à plat pour une utilisation commerciale qui est actuellement à environ 300 $, de sorte que est un non-go.
À l'origine, j'ai commencé à coder mon site en tant que système temporaire afin que mes utilisateurs puissent acheter des mises à niveau et d'autres choses telles que la monnaie du jeu jusqu'à ce que je puisse créer un nouveau site Web, mais après avoir commencé, j'ai rapidement réalisé que je devais le rendre évolutif. , donc à partir de ce moment-là, j'ai codé en pensant à en faire un site Web pleinement fonctionnel. Cela n'a pris que quelques jours, mais toutes les bases sont là (inscription, connexion, modifications de compte, etc.) et je pense que ce serait un excellent début pour un CMS privé.
La dernière chose que je veux ajouter est que si je construis mon propre CMS, devrais-je utiliser un framework PHP tel que CodeIgniter, avec lequel j'ai beaucoup d'expérience?
Peut-être que d'autres développeurs pourraient me renseigner sur ce que je vais peut-être faire.
Réponses:
Cela dépend totalement de votre situation. D'excellents sites ont été créés avec des CMS. Je pense que nous ferions mieux de comprendre d'abord deux concepts, le CO et le TCO.
CO (Coût de possession)
Lorsque vous achetez quelque chose, le montant que vous payez est CO. Dans le cas de WordPress, ce n'est rien, car WordPress (ou de nombreux autres logiciels CMS) est gratuit.
TCO (coût total de possession)
Imaginez que vous achetez un PC pour 10000 dollars. Alors quoi? Vous devriez y consacrer du temps pour installer des logiciels (le temps est une ressource précieuse, donc vous êtes toujours prêt à dépenser de l'argent sur ce PC), puis vous pourriez acheter une webcam, un autre graveur de DVD et des câbles supplémentaires. Ensuite, vous devez apprendre à utiliser les logiciels installés. En d'autres termes, le coût total de possession d' un PC n'est pas de 10 000 $. C'est bien plus que ça.
Dans le cas des logiciels CMS, leur CO n'est vraiment rien à des taux très bas. Mais de nombreuses expériences montrent que leur TCO n'est pas bas du tout. Les grandes entreprises dépensent près de milliers de dollars pour obtenir un bon site dans Joomla ou WordPress.
Un autre facteur est le niveau de personnalisation . Parfois, vous souhaitez utiliser un logiciel tel quel sans aucun changement. Dans ce cas, WordPress, Joomla, Drupal ou tout autre CMS pourrait être un très bon candidat, et vous ne devriez pas écrire votre propre CMS. Mais il y a des moments où vous avez besoin d'un haut niveau de personnalisation. Dans ce cas, vous devenez vraiment frustré de personnaliser un CMS prêt à l'emploi en fonction de vos besoins.
En fait, je voulais utiliser un logiciel CMS prêt, mais après avoir passé un temps précieux à apprendre différents CMS et à trouver les faiblesses de chacun, j'ai fini par créer mon propre CMS. Thought Results est mon site personnel et est construit via ce CMS. Je vais le publier bientôt, afin que d'autres puissent également l'utiliser.
Un autre facteur encore est l' extensibilité . Croyez-moi, cela vous rend vieux de passer un CMS de l'état statique à l'état extensible. Les modèles, modules, plugins, fournisseurs, base de données et stockage, mécanismes de routage et presque toutes les parties d'un bon CMS devraient être extensibles.
Enfin, ma suggestion personnelle est de commencer à construire un CMS, afin qu'au moins vous appreniez certains des concepts les plus fondamentaux derrière. Mais essayez également d'utiliser ceux qui existent déjà. Bonne chance.
la source
Je joue l'avocat des démons ici, mais il faut le dire. Certains des problèmes les plus courants avec les développeurs de logiciels:
Êtes-vous sûr de ne commettre aucune de ces erreurs, car même pour 15 ans, 300 $ pourraient être gagnés en quelques semaines, et ce que vous semblez proposer pourrait prendre des mois. Pensez à ce qui se passerait si vous obteniez un emploi rémunéré et achetiez ExpressionEngine avec l'argent. Serait-il livré plus tôt, avec des fonctionnalités encore meilleures qu'un travail de bricolage?
la source
Il y a deux réponses à cela.
La première est simple: non, ne réinventez pas la roue. Il y a beaucoup d'excellents systèmes CMS et si vous apprenez à bien en utiliser un, alors s'il y a des choses dont vous avez besoin qu'il n'offre pas, vous pouvez vous concentrer davantage sur la création d'un plug-in à cette fin plutôt que de réinventer le roue.
La seconde est un peu moins évidente: oui. Si vous voulez comprendre le fonctionnement d'un CMS et les problèmes rencontrés lors de sa création, il n'y a aucun mal à en créer un. Il n'aura probablement jamais la puissance et la flexibilité de l'un des systèmes CMS existants et comme il existe environ 100000000000 systèmes de gestion de contenu PHP dans le coin, il y a très peu de chances que quelqu'un d'autre s'y intéresse, mais il ne le sera pas non plus. avoir les trucs dont vous n'avez pas besoin et cela fonctionnera probablement beaucoup plus petit et plus simple que n'importe lequel des plus gros systèmes. Cela prendra beaucoup de temps, les résultats ne seront probablement pas aussi bons et cela ne fera aucune différence pour le reste du monde, mais en termes de développement et d'apprentissage, cela pourrait être un exercice utile.
Dans tous les cas, avant de vous lancer dans la construction du vôtre, j'essaierais les systèmes traditionnels disponibles juste pour avoir une idée de leur fonctionnement, de ce qu'ils font bien et de ce que vous pensez qu'ils pourraient faire mieux. Une bonne compréhension de ceux-ci peut éclairer votre décision quant à savoir s'il y a ou non un avantage à créer le vôtre.
la source
Si vous n'avez jamais essayé de programmer un CMS, cela pourrait être une très bonne occasion de le faire. Vous apprendrez beaucoup et peu importe que vous ayez terminé, vous aurez une très bonne idée, par exemple:
Dans certains cas, vous pourriez même constater que vous avez appris à ne pas le faire. Cette expérience est également importante.
Personnellement, j'ai atteint un stade où j'ai appris que «combien cela peut être difficile» ne couvre que quelques pour cent du travail qui doit réellement être fait pour créer un produit de haute qualité, et si je devais choisir un CMS, je rechercherait un populaire avec une base de code accessible accessible et une bonne documentation, et une bonne architecture de plugin me permettant d'écrire simplement des plugins appropriés, puis de mettre à jour le CMS de base lorsqu'une nouvelle version sortira.
la source
Ce n'est qu'une légère réponse à votre question. J'ai supposé que vous êtes en php et que vous n'utilisez pas la méthode CMS pré-faite. Bienvenue au club! Beaucoup d'entre nous ont suivi le même chemin. Un conseil qui pourrait alléger votre charge.
J'ai commencé à construire mon propre CMS, l'implémentation MVC, le gestionnaire d'internationalisation (i18n), le gestionnaire de session, un moyen de couche d'abstraction de base de données, un moyen de gestionnaires de formulaires, etc. Et puis j'ai découvert que ce que je faisais était réellement fait avant, mais mieux par les cadres. Donc, cela signifie que vous n'avez pas à réinventer complètement la roue, mais juste là où elle correspond à vos besoins. Les cadres vous facilitent la vie, mais ils nécessitent beaucoup d'efforts pour lire et apprendre. Cela m'a pris un an pour vraiment maîtriser Symfony, et je ne le regrette pas une seconde.
Et vous avez de la chance, car il existe actuellement beaucoup plus de cadres de haute qualité qu'auparavant. Pour n'en nommer que quelques-uns:
CakePHP : Je l'ai utilisé il y a longtemps et je n'ai pas pu parcourir la documentation. Apparemment, c'est maintenant mieux et mérite probablement votre attention.
Yii : Je ne l' ai pas utilisé, mais il y a beaucoup de duvet récemment, ça vaut probablement votre attention.
CodeIgniter : Beaucoup de gens ont fait l'éloge de codeigniter pour sa courbe d'apprentissage facile et sa facilité d'utilisation. Je ne l'ai pas utilisé.
Si vous voulez essayer python, beaucoup de gens font également l'éloge de Django, et bien sûr de rubis sur rails.
Il y en a probablement plus, mais cela devrait vous être utile. Si vous ne souhaitez pas les utiliser, vous pouvez toujours apprendre beaucoup de ces cadres. Bonne chance!
la source
La réponse dépend en grande partie de ce que vous essayez de réaliser.
Si vous avez l'intention de développer vos compétences, renseignez-vous sur la gestion de contenu, etc. Alors oui, développez certainement les vôtres. De même, si vous voulez apprendre un framework, utilisez-le.
Cependant, si votre objectif est le jeu que vous mentionnez et ses joueurs, la réponse est presque certainement non. Votre temps est une ressource limitée et donc coûteuse. Le temps passé à développer un CMS n'est pas du temps à développer le jeu, et c'est le jeu qui génère des revenus. Alors posez-vous la question. Est-ce que le temps passé à développer ce CMS plutôt que d'en acheter un va améliorer mon expérience de jeu des joueurs plus que le temps passé à développer le jeu? Si la réponse est oui, développez-la, sinon ne le faites pas.
De même, la décision du CMS open source sur ExpressionEngine devrait se résumer au ToC, comme le dit Saeed. Mettez simplement si Coût (Wordpress)> Coût (ExpressionEngine) puis dépensez les 300 $. Ici, le coût est Purchase_cost + (hours_to_customise * your_hourly_rate).
la source
Trouvez un CMS qui correspond à 90% de vos besoins et modifiez-le au fil du temps pour ajouter des fonctionnalités qu'il ne fournit pas.
Cela vous permettra de lancer tôt et de vous adapter à l'évolution de vos besoins et de ceux de vos utilisateurs.
la source
Je vous encourage entièrement à créer votre propre CMS. C'est de loin le meilleur moyen de connaître les tenants et aboutissants d'un tel système en matière de personnalisation et de sécurité. Mais je dois me demander à quel point vous êtes intermédiaire à avancé avec vos compétences PHP. Ce n'est pas en fonction de votre âge, croyez-moi.
Le drapeau pour moi était "Je ne pense pas exactement que WordPress soit suffisamment puissant / évolutif pour pouvoir gérer ce que j'essaie de faire et après avoir bricolé un peu avec Drupal au cours des derniers jours, cela ne semble pas à la hauteur de mon goût et n'est pas non plus bien documenté, donc j'ai un peu de mal à le faire faire certaines tâches simples. "
La pléthore de livres et de sites sur la personnalisation de Worpress et Drupal, sans parler des sites de haut niveau qui fonctionnent sur ces derniers, prouve que vous devez savoir ce que vous faites pour obtenir des sites comme ceux-ci. Sans oublier que des budgets entiers sont réservés pour gérer ces sites.
Liens par exemple:
http://drupal.org/cases
http://wpmu.org/wordpress-showcase-20-high-profile-sites-running-on-wordpress
Ce n'est pas pour vous décourager dans ce que vous essayez de faire, allez-y par tous les moyens. Je veux juste m'assurer que vous ne consacrez pas trop de temps (réinventer la roue) et que vous vous sentez frustré à un certain moment et dites simplement "eff it", quand vous pouvez étirer vos talents et montrer aux gens, employeurs inclus , ce que vous avez avec les outils actuellement disponibles. Dans le monde réel et dans l'économie actuelle, le temps c'est de l'argent, et les entreprises et les organisations n'ont pas le temps et / ou les budgets pour gérer continuellement la création de projets à partir de zéro.
L'information se déplace aujourd'hui à la vitesse de la lumière, c'est pourquoi les programmeurs qui peuvent séparer le bruit et créer du contenu / des applications / des systèmes utiles dans un délai d'exécution approprié sont très demandés.
la source
Vous seul pouvez savoir si Wordpress ou Drupal peut faire ce que vous avez besoin d'un CMS, mais si vous voulez les essayer, pourquoi ne pas utiliser une machine virtuelle de Turnkey Linux , comme celle pour Wordpress , Drupal , Joomla ou n'importe laquelle les autres avec la balise de gestion de contenu .
En supposant que vous avez déjà installé VMware player ou VirtualBox , quelques minutes après le téléchargement de l'une de ces appliances, vous pouvez essayer le logiciel vous-même, avec un investissement en temps minimal.
la source