Criar Funções Para Reutilizar Em Todo Site

[size="5"]Boa noite,[/size]

Estou com uma dúvida, eu estou acostumado com php puro sem uso de framework,

hoje tenho uma classe que desenvolvi com vários funções que utilizo em meus sites

ex: resumir textos, gerar thumb, remover acentos, entre outros.

No PHP eu faço um include("nome-da-classe.php"); na minha página principal

Chamo a classe e já posso utilizar as funções em todas as páginas.

Como faço isso no Yii?

Tentei criar como extensão mas to apanhando pra caramba,

alguém já fez algo parecido e pode me ajudar?

Agradeço desde já pela Ajuda!

Olá Michel,

Você pode fazer de várias formas. Abaixo veja um exemplo simples que acho que pode lhe ajudar.

Crie uma pasta helpers dentro da pasta protected e adicione o caminho no config de sua aplicação

Exemplo:




...

'import'=>array(

    'application.components.*',

    'application.models.*',

    'application.helpers.*', // adicione esta linha

),

...

[size="2"]Agora dentro da pasta helpers coloque sua classe. Para usar a mesma de forma rápida transforme os métodos da classe em métodos estáticos e com isso basta chamar em qualquer lugar da sua aplicação algo como:[/size]

[size="2"]


Util::seuMetodo($parametros);

[/size]

Muito Obrigado Wanderson pela ajuda, vou fazer um teste dessa maneira,

cara eu fiz um esquema aqui criei dentro da pasta protected/extensions um arquivo php com minha classe e as funções no arquivo fiz assim:




class Opcoes extends CApplicationComponent{

  ...minha funções

}



Depois lá no arquivo protected/config/main.php em components adicionei assim:


'opcaoClass'=>array(

                        'class' => 'application.extensions.Opcoes'

			),

Agora sempre que preciso de alguma função da classe chamo assim:


Yii::app()->opcaoClass->NomeDaFuncao();

Ta dando certo, mas será que isso é certo?

Qual é a vantagem e desvantagem de fazer assim como eu fiz?

Abraço!

Michel,

Dessa forma você pode está chamando mais de 1 class, além da sua, dependendo da quantidade de vezes que for usar sua função, pode ter um pequeno delay no carregamento da página.

Usa Helpers, cria uma class dentro da pasta /components/Helpers.php e usa sempre ele para funções padrões suas.

Uma ajuda aqui:

http://www.yiiframework.com/wiki/165/understanding-autoloading-helper-classes-and-helper-functions/

Ou você pode criar atalhos para suas funções:

http://www.yiiframework.com/wiki/31/

Opa! Muito Obrigado Newerton! Vou fazer com Helpers então a partir de agora.

Abraço!