Qual a diferença entre Helpers e Libraries?
Você já deve ter notado que o CodeIgniter possui duas funcionalidades muito importantes, os Helpers e as Libraries, mas qual a diferença entre os dois?
Basicamente ambos servem para adicionar funcionalidades ao Framework e assim nos ajudar a completar a nossa tarefa mais rapidamente.
Cada um tem sua utilidade mas falando tecnicamente podemos dizer que:
Helpers são simples funções procedurais que estão fora de alguma Classe enquanto Libraries são Classes PHP.
Você já deve ter feito um site ou sistema onde muito provavelmente criou um arquivo chamado funcoes.php e jogou ali tudo quanto é função que você precisaria usar no seu site.
Estas funções que você colocou neste arquivo são equivalentes aos helpers.
Provavelmente você deveria ter alguma função dentro de funcoes.php que trabalhava com datas. No caso do CodeIgniter existe um helper chamado Date Helper que traz funções para trabalhar com datas.
Você também pode criar funções que façam alguma tarefa relacionada à compatibilidade de algo que ainda não existe na versão do PHP que você está usando.
Mas talvez você até esteja perguntando agora: “perae, mas o CodeIgniter não é para ser 100% orientado a objetos?”
Em primeiro lugar nada será 100% orientado a objetos, como exemplo temos o arquivo de bootstrap (arquivo de inicialização do framework) do CodeIgniter que tem como função instanciar todas a classes necessárias para a aplicação rodar, então esqueça a ideia de que você estará completamente livre de códigos e funções procedurais.
Já, com relação às Libraries, sua intenção é de fornecer uma maneira rápida de carregar classes PHP que não sejam controllers nem models, pois assim fica fácil de você adicionar códigos de terceiros em sua aplicação.
Hoje existem os namespaces em PHP, que são muito úteis em carregar bibliotecas de terceiros através do autoloading, como é o caso do Composer.
É isso.
Espero ter esclarecido sua dúvida.
Fábio