2010-02-01 17 views
9

si tengo funciones de cadena uso mucho, ¿debería ponerlas en una clase auxiliar o en una clase de biblioteca?diferencia entre bibliotecas y ayudantes en marcos php

funciones como: truncar cadena si tiene más de 30 caracteres, devolver una cadena al azar, hacer todos los casos más bajos y así sucesivamente. Estas son funciones para las que probablemente no necesito crear un objeto. es mejor usarlos como métodos estáticos.

¿Debería ponerlos en una clase de biblioteca o una clase de ayuda?

¿Cuándo sé cuándo colocarlo?

Respuesta

13

ayudantes son las clases que ayudan a algo que ya existe, por ejemplo, no puede haber un ayudante para:

gama
cadena
url
etc

Una biblioteca es algo que puede ser cualquier solución; podría ser creado por primera vez por usted y nadie más lo ha creado.

Dado que se trata de una cadena (algo que ya existe), debe colocarla en una clase auxiliar o modificar la clase auxiliar de cadena del marco (si hay una). Sin embargo, esta es una convención o estándar, pero también puede crear una biblioteca si está creando algo realmente genial para el manejo de cadenas con algunas funciones.

+1

podría decir que las clases de la biblioteca se deben utilizar para crear instancias de objetos. si es así, entonces es fácil saber cuándo crear un ayudante y cuándo crear una clase de biblioteca. pero en Java, tenemos clase de Matemáticas. y eso solo tiene funciones estáticas. volver al punto de partida :) – ajsie

+0

@noname: no pude entender su comentario, pero no hablé sobre iniciar o no iniciar. – Sarfraz

3

Supongo que está utilizando CodeIgniter.

Dado que ya escribe que no necesita crear una instancia de un objeto y lo usará en sus métodos estáticos, entonces hacerlo en ayuda tendrá sentido que hacerlo en la biblioteca.

En CI, los helpers también se administran, una vez cargados, se omite el segundo intento de cargarlos. Puede abrir la compilación del CI en ayuda para saber qué hace y luego compararla con las bibliotecas. Al conocer el propósito, puede decidir usted mismo, ayudantes o bibliotecas.

1

si tengo funciones de cadena uso mucho, ¿debería ponerlas en una clase auxiliar o en una clase de biblioteca?

Si son funciones, ¿por qué quiere pegarlas en una clase? PHP permite funciones flotantes gratuitas.

+0

PHP permite mucho, por qué a veces puede ser complicado. así que quería saber cuál es la mejor estructura. – ajsie

+0

En caso de que no fuera claro, estaba dando a entender que creo que las funciones gratuitas son la mejor estructura para el caso descrito. – troelskn

2

Helper es una colección de funciones definidas por el usuario o predefinidas, sin necesidad de instanciar, así como las bibliotecas son clases necesita crear instancias para usarlas. La biblioteca también puede contener funciones/métodos definidos y definidos por el usuario. ¡La función definida en la biblioteca (clase) se conoce como método!

11

Además de la manual que explica estas todo bastante bien ...

bibliotecas: clases de utilidad en el estado del objeto es importante (pasarelas de pago, autenticación, etc.)

ayudantes: Colecciones de funciones relacionadas (no clases) que hacen tareas repetitivas (cadenas, matrices, etc.)

complementos: Una forma sencilla de pasar a clases de terceros. Normalmente, todo el proceso se llama con una sola función de contenedor. (obsoleto en la próxima versión 2.0 de CodeIgniter.)

Cuestiones relacionadas