Foro

PHP clases + ExtJs

0
hola que tal a todos bueno ya hace rato, he venido pensando en la idea de hacer unas clases de php, como todos sabemos en la mayoria de aplicaciones existen entidades comunes como los usuarios, y por consecuencia debemos hacer una interfaz de administracion de usuarios, ok entonces la idea es que quiero hacer una clase persona("con sus respectivos, metodos y atributos"), luego una clase usuario que extiende de persona, bueno hast ahi todo bien y no hay problema lo que a mi se me ocurre es tener una clase para tratar la info que requieren algunos componentes de ExtJs como son los grids, los combo y los forms componentes necesarios para la admin de usuarios. Bueno esta clase me serviria para todas mis demas clases de php que tengan los metodos toGrid, toCombo, toForm, etc. Lo que auiero es que me den ideas de como estructurar mis clases para que si tengo alguna clase que necesite los metodos antes mencionados solo la extienda. alguna idea??? ojala haya quedado clara la idea si no <!-- s:( --><!-- s:( --> bueno les voy a dejar un dibujo de como se me ocurre la estructura para ver si me ayudan a crear el codigo, tal vez a alguien mas le pueda servir
0
Creo que in primer lugar tus metodos deberías definir si generarán XML o JSON, después tienes dos opciones, la más fácil es que los métodos que extiendan a la clase principal implemeten los métodos abstractos (toGrid, toCombo, etc...) con su respectivo funcionamiento, de esta manera te aseguras de que los métodos sean implementados:
abstract class ExtJsApp {  
 
    abstract public function toGrid();  
    abstract public function toCombo();  
    abstract public function toForm();  
}
class User extends ExtJsApp{  
    private $name;
    public function toGrid(){  
        return "{name: '$name' }";
    }  
}  
puedes utilizar una iterface si te parece mejor, es algo semejante. Otra alternativa que puedes hacer es utilizar "reflection" para generar dinámicamente la información a generar y poner esos métodos en la clase padre, la verdad no soy muy hábil con PHP, pero seguramente debe tener alguna forma de saber las propiedades que tiene una clase y así poder generar el JSON o XML necesario. aqui te dejo la documentación para realizar esto que te comento. <!-- m -->http://nz.php.net/oop5.reflection<!-- m --> ahi puedes ver como se pueden obtener las propiedades de la clase, una vez que las tengas es cuestión de imprimirlas <!-- s:D --><!-- s:D --> saludos
0
orale muchas gracias, voy checar, de echo esa es la idea que tengo, pero estaba pensando an alguna forma en la cual le pase no se. lo mas facil seria un vector, o un sql, a la clase padre y ella se encargue de generar el json para los grids,combo..., osea que en el resto de las clases que hereden de ExtJsApp no tenga que implementar los mismos metodos de nuevo. Tal vez con "reflection" lo logre voy a a leer como esta el asunto, jeje saludos y suertextjs
0
si eso es lo que quieres te recomiendo utilizar alguna librería que lo hace, por ejemplo: <!-- m -->http://pecl.php.net/package/json<!-- m --> aunque me acabo de enterar que para la versión 5.2.0 ya es parte del core de PHP <!-- s:D --><!-- s:D --> personalmente yo utilizo una librería para JAVA que hace esto de una manera muy sencilla:
User user = facade.findUserById(1);
JSONObject obj = new JSONObject(user);
obj.put('propiedadNueva','Con su valor nuevo!');
String json = obj.toString();
out.println(json); // {name:'x',pwd:'y',age: z}
aqui te dejo un link donde puedes descargar librerías para el manejo de JSON en diferentes lenguajes. <!-- m -->http://www.json.org/<!-- m --> saludos
0
orale muchas gracias voy a checar y le comento como va...
0
COmo te fue con la clase
0
hola que tal a todos pues, termine haciendo de primer manera no pude abstraer un controladador para extjs totalmente entonces, lo que tengo es un clase conexion que hace todas las operaciones de la bd y contienen metodos como to grid, y to form, el problema es que como hago un rigth join en mi sql, entonces vienen unos campos vacios y al convertirlos a json los toma como campos null, y javascript al ponerlos en el grid o el form lo spone como cadenas null, entonces hice un tratado de los datos, pero en fin asi es como hice la organizacion de mis clases, voy a poner un diagrama nadamas tenga tiempo, asi como tambien el modulo usuarios para que lo pruben y me den sugerencias saludos y SuertExtJs

¿Conoces a alguien que pueda responder esta pregunta? Comparte el link en Twitter o Facebook

Es necesario registrarse para poder participar en el foro! Si ya tienes una cuenta puedes entrar y comentar en este foro.