Lições de PHP - Parte 3 - Criando seu próprio CMS
Criar sites em CMS não se limita apenas a Drupal, Joomla e Wordpress. No mundo, a maioria dos sites é feita em CMSs personalizados. Apesar de já existir muito código escrito em PHP, os programadores frequentemente usam seus próprios desenvolvimentos. Vamos tentar entender por que usar seu próprio CMS.
Sim, existe Drupal, um sistema poderoso com muitos módulos, hooks e funções para criar seus próprios módulos. Muitas pessoas sabem escrever seus próprios módulos, mas vamos ver quantas pessoas trabalham na criação do próprio Drupal. Você provavelmente leu que Drupal é trabalho de centenas ou até milhares de programadores. Mas vamos ainda ver quem faz Drupal.
Na página de download do Drupal, existe um bloco com uma lista de programadores trabalhando no núcleo do Drupal, ou seja, no próprio CMS.
drupal.org/node/3060/committers?sort=desc&order=Commits
E nesta página, uma lista de programadores com seus commits no núcleo. E então a lista:
| Desenvolvedor | Último commit | Primeiro commit | Commits |
|---|---|---|---|
| Dries | 3 days ago | 11 years ago | 10501 commits |
| webchick | 5 days ago | 3 years ago | 3108 commits |
| Gábor Hojtsy | 2 days ago | 4 years ago | 1635 commits |
| Steven | 4 years ago | 11 years ago | 1156 commits |
| drumm | 1 year ago | 5 years ago | 764 commits |
| killes@www.drop.org | 4 years ago | 6 years ago | 506 commits |
| Kjartan | 5 years ago | 11 years ago | 383 commits |
| catch | 2 days ago | 21 weeks ago | 329 commits |
| Jeroen | 10 years ago | 11 years ago | 101 commits |
| Git Migration | 1 year ago | 10 years ago | 38 commits |
| jhodgdon | 2 days ago | 3 days ago | 3 commits |
| quicksketch | 16 weeks ago | 16 weeks ago | 3 commits |
| pillarsdotnet | 23 weeks ago | 23 weeks ago | 2 commits |
Vamos começar pela lista:

Dries (10k commits) - nome completo Dries Buytaert, fundador do projeto Drupal. Como você pode ver, o projeto Drupal tem mais de 11 anos. Dries criou a empresa Acquia, que fornece suporte técnico para sites Drupal (muito caro, ao contrário do próprio Drupal), bem como desenvolvimento do Drupal e seus módulos. Li em alguma entrevista com Dries que ele não mais se envolve diretamente no desenvolvimento do Drupal como programador, mas principalmente gerencia a empresa Acquia. Ele explicou essa grande quantidade de commits dizendo que recebe patches de núcleo já prontos e apenas os adiciona.
webchick (3k commits) - nome completo Angie Byron, desenvolvedora da versão 7 do Drupal. Trabalha (trabalhava?) na empresa lullabot, embora em seu perfil em drupal.org diga que se você quiser contratá-la para trabalhar em seu site, deve entrar em contato com a empresa Acquia. Angie também desenvolveu Drush, um conjunto de scripts para trabalhar com Drupal através do console. Atualmente, Angie é uma das principais desenvolvedoras do Drupal.
Gábor Hojtsy - nome completo Gábor Hojtsy, um dos principais desenvolvedores da versão 6 do Drupal. Também desenvolveu recursos de internacionalização e tradução do Drupal para outros idiomas na versão 7 do Drupal.
Existem, é claro, outros desenvolvedores do núcleo, que trabalharam em uma parte do Drupal. Mas esses são os principais. Então não importa o quanto digam que Drupal é obra de milhares de programadores, o núcleo do Drupal é trabalho de algumas pessoas. Então até mesmo enormes CMSs são desenvolvidos por poucas pessoas.
Voltemos à pergunta inicial: por que desenvolver seu próprio CMS? Você se lembra de quanto tempo levou para aprender Drupal? Bem, alguns programadores gastam menos tempo criando um CMS do que aprendendo um CMS do tamanho do Drupal.
PHP é uma linguagem simples (comparada a outras linguagens), qualquer pessoa pode escrever código nela, conhecimento especial não é necessário (para coisas simples). Claro que com o tempo você precisará aprender muito para escrever um CMS escalável, mas por enquanto vamos ver as vantagens do seu próprio CMS:
1. Você sabe onde e o que você tem. Com que frequência você consulta o código taxonomy.module, comment.module? Não muito frequentemente, e você? Simplesmente não há necessidade. O código está escrito, as funções são documentadas, os templates podem ser substituídos. O que mais você precisa? Mas e se houver um problema ou erro? O que fazer? Escrever em drupal.org e esperar que os desenvolvedores do núcleo sobrecarregados respondam? Na minha opinião, isso não é uma solução.
2. Velocidade de trabalho alta. Não é segredo que Drupal funciona lentamente e faz muitas consultas ao banco de dados. Um CMS personalizado funcionará muito mais rápido. Mas há um lado negativo - no Drupal já existem módulos para otimização e cache, então esse problema existe apenas em hospedagem compartilhada.
3. Você é seu próprio chefe. Você pode ignorar a regra "não toque no núcleo" e editar direto no núcleo. Será muito conveniente e você não precisará esperar pelo lançamento de uma nova versão do núcleo para incluir suas edições.
Existem, é claro, desvantagens, mas... Não vamos falar sobre elas, é óbvio que Drupal é bom, não vamos dizer novamente por que é bom, todos sabem.
Então, você decidiu escrever seu próprio CMS, vamos começar.