Diferencia entre revisiones de «Preguntas Frecuentes»

De KumbiaPHP Framework Wiki
Saltar a: navegación, buscar
(¿Cómo puedo visualizar la sentencia SQL que se ejecutó en un modelo?)
 
(No se muestran 27 ediciones intermedias de 13 usuarios)
Línea 1: Línea 1:
==¿Por qué no suben simultaneamente los cambios a Launchpad y SourceForge?==
+
==¿Por qué no suben simultáneamente los cambios a Launchpad y SourceForge?==
 +
===Actualmente esta en GitHub [https://github.com/KumbiaPHP/KumbiaPHP KumbiaPHP en GitHub]===
  
 
Primero [https://launchpad.net/kumbia Launchpad] es básicamente para el [[Team_Development_KumbiaPHP_Framework| Equipo de Desarrollo]], aunque puede existir usuarios que deseen bajar de allí, en launchpad/kumbiaphp podemos decir que esta la versión más inestable aunque nosotros (el equipo de desarrollo) tenemos aplicaciones en production y el framework es probado con esas aplicaciones. Recordemos que launchpad trabaja con [http://doc.bazaar-vcs.org/ Bazaar] para el control de versiones que no es lo mismo a [http://es.wikipedia.org/wiki/Subversion SVN].
 
Primero [https://launchpad.net/kumbia Launchpad] es básicamente para el [[Team_Development_KumbiaPHP_Framework| Equipo de Desarrollo]], aunque puede existir usuarios que deseen bajar de allí, en launchpad/kumbiaphp podemos decir que esta la versión más inestable aunque nosotros (el equipo de desarrollo) tenemos aplicaciones en production y el framework es probado con esas aplicaciones. Recordemos que launchpad trabaja con [http://doc.bazaar-vcs.org/ Bazaar] para el control de versiones que no es lo mismo a [http://es.wikipedia.org/wiki/Subversion SVN].
  
Segunda opción es el [http://kumbia.svn.sourceforge.net/viewvc/kumbia/ SVN público de SourceForge/kumbiaphp] donde tenemos la descarga de Kumbiaphp, allí pasamos lo mas estable, es decir luego que todos probamos en nuestras aplicaciones hacemos update del SVN de SourceForge.
+
Segunda opción es el [http://kumbia.svn.sourceforge.net/viewvc/kumbia/ SVN público de kumbiaphp] donde tenemos la [[Descargar_SVN|Descarga de Kumbiaphp]], allí pasamos lo mas estable, es decir luego que el [[Team_Development_KumbiaPHP_Framework| Equipo de Desarrollo]] realiza pruebas en aplicaciones que estan en production se hace el update del SVN de SourceForge.
  
 +
== ¿Problemas con la descarga de KumbiaPHP Framework? ==
 +
Si descargas KumbiaPHP Framework de su repositorio SVN, y observas por ejemplo, que su Pagina de Bienvenida no carga bien (no carga su CSS) es posible que esto sea debido a una mal descarga. Para el caso del repositorio SVN, cambia el https por http y procede nuevamente a su descarga. Si eres usuario Linux puedes usar subversion o mejor aun, el programa SVN Workbench. Para el caso de usuarios Windows, puede usarse TortoiseSVN.
  
 
==¿Cuál es la convención para nombrar los archivos y clases de modelos y controladores?==
 
==¿Cuál es la convención para nombrar los archivos y clases de modelos y controladores?==
Para nombre de controladores es la siguiente:
+
*Para nombre de controladores es la siguiente:
  
El archivo debe llevar el sufijo '''_controller''' por ejemplo '''ciudad_controller.php''' y el nombre de la clase es '''CiudadController''' se puede notar que el nombre de la clase se hace en notación [http://es.wikipedia.org/wiki/Camel_Case Camel Case], si queremos nombrar controller que contienen mas de dos palabras un ejemplo seria '''grupo_usuario_controller.php''' y la clase '''GrupoUsuarioController'''.
+
El archivo debe llevar el sufijo '''_controller''' por ejemplo '''ciudad_controller.php''' y el nombre de la clase es '''CiudadController''' en notación [http://es.wikipedia.org/wiki/Camel_Case Camel Case], si queremos nombrar controller que contienen mas de dos palabras un ejemplo seria '''grupo_usuario_controller.php''' y la clase '''GrupoUsuarioController'''.
  
Para los Modelos es la siguiente:
+
*Para los Modelos es la siguiente:
  
El nombre de archivo debe ser igual al nombre de la tabla en nuestra BD, es decir si tenemos una tabla llamada '''usuarios''' el archivo debe llamarse usuarios.php y la clase Usuarios y esta clase debe [http://es.wikipedia.org/wiki/Programaci%C3%B3n_orientada_a_objetos#Conceptos_fundamentales heredar] de la superclase '''ActiveRecord''', si tenemos nombre de tablas compuesto por dos palabras ejemplo grupo_usuarios el archivo del modelo debe llamarse grupo_usuarios.php y la clase igual que en los controladores debe ser en notacion [http://es.wikipedia.org/wiki/Camel_Case Camel Case], es decir '''GrupoUsuario'''
+
El nombre de archivo debe ser igual al nombre de la tabla en la BD, es decir si tenemos una tabla llamada '''usuarios''' el archivo debe llamarse usuarios.php y la clase Usuarios y debe [http://es.wikipedia.org/wiki/Programaci%C3%B3n_orientada_a_objetos#Conceptos_fundamentales heredar] de la superclase '''ActiveRecord''', si tenemos nombre de tablas compuesto por dos palabras ejemplo '''grupo_usuarios''' el archivo del modelo debe llamarse grupo_usuarios.php y la clase igual que en los controladores debe ser en notación [http://es.wikipedia.org/wiki/Camel_Case Camel Case], es decir '''GrupoUsuario'''
  
 +
==¿Cuál es la diferencia entre Redirect::route_to() y View::select($view)?==
 +
Primero hay que aclarar que el '''Redirect::route_to()''' es un método para enrutar, es decir para redireccionar internamente en el framework llevar de un controller y/o action a otro controller y/o action, mientras que el método '''View::select($view)''' es para renderizar (mostrar) una vista, esta vista siempre será por defecto el nombre de nuestra action, pero en ocasiones podemos indicar que no queremos renderizar la vista asociada a esa action '''View::select('otra_view')''' o que simplemente no renderize nada '''View::select(null);''' (importante para entender el ejemplo).
  
==¿Cuál es la diferencia entre route_to() y render()?==
+
Veamos un ejemplo para apreciar no solo la diferencia porque en realidad son métodos para cosas distintas aunque pueden cumplir el mismo fin, solo que la  intención es aplicar las mejores prácticas de desarrollo.
 +
 
 +
Ejemplo, tenemos el siguiente controller
 +
<source lang="php" line>
 +
<?php
 +
class PruebaController extends ApplicationController
 +
 +
   
 +
    public function index()
 +
    {
 +
        Redirect::route_to('action: create');
 +
    }
 +
    public function create()
 +
    {}
 +
}
 +
 
 +
</source>
 +
 
 +
En primer lugar hay que decir que aunque esto pueda cumplir un fin especifico (renderizar una vista, en este caso create.phtml), '''no es la forma correcta'''. la forma adecuada es la siguiente:
 +
 
 +
<source lang="php" line>
 +
<?php
 +
class PruebaController extends ApplicationController{ 
 +
   
 +
    public function index(){
 +
        View::select('create');
 +
    }
 +
}
 +
 
 +
</source>
 +
Esto se interpreta que cuando ejecutemos la action index del controller Prueba (http://localhost/prueba/index/) no se renderizara '''index.phtml''' sino '''create.phtml''' y como se puede apreciar quitamos un método que esta vació (consumimos menos memoria) y será más rápido porque no se volverá a ejecutar un ciclo de enrutamiento innecesario.
 +
 
 +
==¿Si deseo añadir hoja de estilos en una copia de app donde debo colocar el .css?==
 +
 
 +
En la carpeta public de la app que quieras que pertenezca.
 +
 
 +
 
 +
==¿Cómo puedo visualizar la sentencia SQL que se ejecutó en un modelo?==
 +
 
 +
Activando el logger del modelo con:
 +
 
 +
<source lang="php" line>
 +
<?php
 +
class Ciudad extends ActiveRecord{
 +
 
 +
    public $logger = true;//Logger esta activo
 +
   
 +
}
 +
</source>
 +
 
 +
Este logger almacena en archivos de texto la información, en la carpeta: temp/log/logddmmYYYY.txt
 +
 
 +
==¿Cuál es la diferencia entre libraries y vendors en la versión 1.0?==
 +
'''Libraries''' son propias de [http://www.kumbiaphp.com KumbiaPHP] es decir las que mantiene el [[Team_Development_KumbiaPHP_Framework| Equipo de Desarrollo]] y '''vendors''', son de terceros como por ejemplo '''fpdf''' en la cual el Equipo de Desarrollo no interviene en su mantenimiento.
 +
 
 +
==Puedo mandar a renderizar (mostrar) partials desde un controller?==
 +
No, ya que esto no es MVC. los partials son pequeñas vistas que deben ser renderizadas desde la vista.
 +
 
 +
==¿Puedo acceder a procedimientos almacenados mediante ActiveRecord? ==
 +
En [http://www.kumbiaphp.com KumbiaPHP] no hace falta hacer mucho para acceder a estos solo con indicarlo como una columna basta, por ejemplo: supongamos que tenemos un procedimiento llamado '''getMoneyName''' el cual recibe como parámetro un entero y retorna un string, la manera de acceder a este seria la siguiente:
 +
 
 +
<source lang=php>
 +
$bien = new Bien(); //donde Bien es un modelo de kumbia
 +
$bien->find_first(‘columns: getMoneyName(moneda_id) ’,’conditions: nrobien=1’);
 +
Flash::message($bien->getmoneyname);
 +
</source>
 +
 
 +
 
 +
==¿Kumbia PHP es compatible con la version 5.3.x de PHP ?==
 +
En este momento hay un bug en la version de PHP 5.3.0 y 5.3.1, que afecta las rutas estáticas de KumbiaPHP. A partir de PHP 5.3.3 en adelante, la versión beta2 de KumbiaPHP es completamente compatible.
 +
 
 +
Para la beta1 y anteriores, se recomienda utilizar la version 5.2.2 o superior. Pero no la 5.3.
 +
 
 +
Ambas versiones disponibles en [http://www.php.net/downloads.php#v5 Php.Net:Downloads]

Última revisión de 14:43 1 dic 2017

¿Por qué no suben simultáneamente los cambios a Launchpad y SourceForge?[editar]

Actualmente esta en GitHub KumbiaPHP en GitHub[editar]

Primero Launchpad es básicamente para el Equipo de Desarrollo, aunque puede existir usuarios que deseen bajar de allí, en launchpad/kumbiaphp podemos decir que esta la versión más inestable aunque nosotros (el equipo de desarrollo) tenemos aplicaciones en production y el framework es probado con esas aplicaciones. Recordemos que launchpad trabaja con Bazaar para el control de versiones que no es lo mismo a SVN.

Segunda opción es el SVN público de kumbiaphp donde tenemos la Descarga de Kumbiaphp, allí pasamos lo mas estable, es decir luego que el Equipo de Desarrollo realiza pruebas en aplicaciones que estan en production se hace el update del SVN de SourceForge.

¿Problemas con la descarga de KumbiaPHP Framework?[editar]

Si descargas KumbiaPHP Framework de su repositorio SVN, y observas por ejemplo, que su Pagina de Bienvenida no carga bien (no carga su CSS) es posible que esto sea debido a una mal descarga. Para el caso del repositorio SVN, cambia el https por http y procede nuevamente a su descarga. Si eres usuario Linux puedes usar subversion o mejor aun, el programa SVN Workbench. Para el caso de usuarios Windows, puede usarse TortoiseSVN.

¿Cuál es la convención para nombrar los archivos y clases de modelos y controladores?[editar]

  • Para nombre de controladores es la siguiente:

El archivo debe llevar el sufijo _controller por ejemplo ciudad_controller.php y el nombre de la clase es CiudadController en notación Camel Case, si queremos nombrar controller que contienen mas de dos palabras un ejemplo seria grupo_usuario_controller.php y la clase GrupoUsuarioController.

  • Para los Modelos es la siguiente:

El nombre de archivo debe ser igual al nombre de la tabla en la BD, es decir si tenemos una tabla llamada usuarios el archivo debe llamarse usuarios.php y la clase Usuarios y debe heredar de la superclase ActiveRecord, si tenemos nombre de tablas compuesto por dos palabras ejemplo grupo_usuarios el archivo del modelo debe llamarse grupo_usuarios.php y la clase igual que en los controladores debe ser en notación Camel Case, es decir GrupoUsuario

¿Cuál es la diferencia entre Redirect::route_to() y View::select($view)?[editar]

Primero hay que aclarar que el Redirect::route_to() es un método para enrutar, es decir para redireccionar internamente en el framework llevar de un controller y/o action a otro controller y/o action, mientras que el método View::select($view) es para renderizar (mostrar) una vista, esta vista siempre será por defecto el nombre de nuestra action, pero en ocasiones podemos indicar que no queremos renderizar la vista asociada a esa action View::select('otra_view') o que simplemente no renderize nada View::select(null); (importante para entender el ejemplo).

Veamos un ejemplo para apreciar no solo la diferencia porque en realidad son métodos para cosas distintas aunque pueden cumplir el mismo fin, solo que la intención es aplicar las mejores prácticas de desarrollo.

Ejemplo, tenemos el siguiente controller

  1. <?php
  2. class PruebaController extends ApplicationController
  3. {   
  4.  
  5.     public function index()
  6.     {
  7.          Redirect::route_to('action: create');
  8.     }
  9.     public function create()
  10.     {}
  11. }

En primer lugar hay que decir que aunque esto pueda cumplir un fin especifico (renderizar una vista, en este caso create.phtml), no es la forma correcta. la forma adecuada es la siguiente:

  1. <?php
  2. class PruebaController extends ApplicationController{   
  3.  
  4.     public function index(){
  5.          View::select('create');
  6.     }
  7. }

Esto se interpreta que cuando ejecutemos la action index del controller Prueba (http://localhost/prueba/index/) no se renderizara index.phtml sino create.phtml y como se puede apreciar quitamos un método que esta vació (consumimos menos memoria) y será más rápido porque no se volverá a ejecutar un ciclo de enrutamiento innecesario.

¿Si deseo añadir hoja de estilos en una copia de app donde debo colocar el .css?[editar]

En la carpeta public de la app que quieras que pertenezca.


¿Cómo puedo visualizar la sentencia SQL que se ejecutó en un modelo?[editar]

Activando el logger del modelo con:

  1. <?php
  2. class Ciudad extends ActiveRecord{
  3.  
  4.     public $logger = true;//Logger esta activo
  5.  
  6. }

Este logger almacena en archivos de texto la información, en la carpeta: temp/log/logddmmYYYY.txt

¿Cuál es la diferencia entre libraries y vendors en la versión 1.0?[editar]

Libraries son propias de KumbiaPHP es decir las que mantiene el Equipo de Desarrollo y vendors, son de terceros como por ejemplo fpdf en la cual el Equipo de Desarrollo no interviene en su mantenimiento.

Puedo mandar a renderizar (mostrar) partials desde un controller?[editar]

No, ya que esto no es MVC. los partials son pequeñas vistas que deben ser renderizadas desde la vista.

¿Puedo acceder a procedimientos almacenados mediante ActiveRecord?[editar]

En KumbiaPHP no hace falta hacer mucho para acceder a estos solo con indicarlo como una columna basta, por ejemplo: supongamos que tenemos un procedimiento llamado getMoneyName el cual recibe como parámetro un entero y retorna un string, la manera de acceder a este seria la siguiente:

$bien = new Bien(); //donde Bien es un modelo de kumbia
$bien->find_first(‘columns: getMoneyName(moneda_id),’conditions: nrobien=1);
Flash::message($bien->getmoneyname);


¿Kumbia PHP es compatible con la version 5.3.x de PHP ?[editar]

En este momento hay un bug en la version de PHP 5.3.0 y 5.3.1, que afecta las rutas estáticas de KumbiaPHP. A partir de PHP 5.3.3 en adelante, la versión beta2 de KumbiaPHP es completamente compatible.

Para la beta1 y anteriores, se recomienda utilizar la version 5.2.2 o superior. Pero no la 5.3.

Ambas versiones disponibles en Php.Net:Downloads