Mostrando entradas con la etiqueta CakePHP. Mostrar todas las entradas
Mostrando entradas con la etiqueta CakePHP. Mostrar todas las entradas

Webmaster Tools y Cakephp


Luego de agregar el sitio a las webmastertools de google, es necesario verificar su propiedad. Para ello hay varis metodos, como por html, por meta tag, por enlace de la cuenta de google analytics, etc.
Para verificacion html nos proporcionan un archivo con nombre como el siguiente google8dmn54g9d45ef99b.html, el cual contiene solo texto plano que tiene de nombre el mismo que el html en sí. como  google-site-verification: google8dmn54g9d45ef99b.html . Este html debería subirse en la carpeta del sitio y debe ser accesible desde - ejemplo.com/google8dmn54g9d45ef99b.html - y debería devolver solo la cadena que contiene - sin ningun texto adicional en la pagina, de lo contratio la verificacion falla.

La manera mas práctica es agregando el meta tag  que brinda en WebmasterTools en app/View/Layouts/default.ctp entre los demás metatag.

Debido a como Cakephp maneja las URL, no solo debemos subir este archivo html a la carpeta principal del sitio o en la carpeta webroot, y tratar de acceder a él por la url mencionada, porque devolveria un error.

 Antes que nada, debemos configurar las rutas. Para ello en app/config/routes.php agruegar la siguientes lineas:

// webmaster tools
 Router::connect('/google8dmn54g9d45ef99b.html', array('controller' => 'pages', 'action' => 'google'));
 
Entonces, enviamos  el pedido para abrir el archivo ejemplo.com/google8dmn54g9d45ef99b.html al Pages controller google action. Luego, en Pages Controller agregar la funcion google

public function google() {
 $this->autoRender = false;
 echo "google-site-verification: google8dmn54g9d45ef99b.html"; 
 }
 
No necesitamos layout y por lo tanto, archivo view para esta página, solo texto plano deberíaser la salida, por lo que, setramos autoRender como false pra hacerl bien.

Si usamos Authentication, no olvidar definir esta página como publica, agregando $this->Auth->allow('google'); al controlador actual beforeFilter() function como:

function beforeFilter() {
 parent::beforeFilter(); 
 $this->Auth->allow( 'google' );
 
Aquí, extendemos el padre de (AppController's) before filter para no perder los que fue definido previamente. Finalmente al abrir esto se mostrará la salida del archivo html que hace funcionar la verificacion.

Framework: CakePHP - Scaffoling (CRUD)


CakePHP tiene una característica interesante que realmente ayuda, se llama "scaffolding" (andamios).
La documentación de Cake deja muy claro que los scaffolding no es una solución de producción, es sólo una forma rápida para hacer algunos prototipos.Una vez que tenga su prototipo, debería ser capaz de poder intercambiar el scaffolding con su propio código, los códigos tendrán prioridad sobre los andamios.

El scaffolding es manera de construir rápidamente una aplicación básica que puede "crear", "leer", "actualizar" y "borrar" (o CRUD) objetos, con sólo unas simples líneas de código de Cake.

Todo lo que necesitamos hacer es configurar su tabla de base de datos, el modelo y el controlador, y eso es todo, puede navegar por la base de datos, añadir nuevas entradas, eliminar, actualizar, etc.

Todas las funciones básicas CRUD que necesita.

Ejemplo:

Crear la tabla 'autores' de base de datos.

Lo primero que debemos hacer es crear una tabla llamada 'autores' con un identificador de clave principal y un campo de nombre, e insertar una fila de muestra.

CREATE TABLE `authors` (
`id` INT( 10 ) UNSIGNED NOT NULL AUTO_INCREMENT ,
`name` TEXT NOT NULL ,
PRIMARY KEY ( `id` )
);
INSERT INTO `authors` (`id` ,`name` ) VALUES ( NULL , 'Andres Yaz');

El id debe existir y ser clave primaria.

Crear un Modelo ‘Author’

A continuación, deberíamos crear nuestro modeloubicado en /app/models/author.php con algo así:


class Author extends AppModel
{
    var $name = 'Author';
}
?>

El modelo siempre tiene el nombre de la tabla.

Crear el controlador con scaffolding

Ahora, podemos seguir adelante para crear el controlador ubicado en /app/controllers/authors_controller.php.
Observar que se respete que elnombre de archivo en el nombre del modelo en plural

Este controlador sólo contendrá una línea dentro de la clase AuthorsController:

class AuthorsController extends AppController
{
    var $scaffold;
}   
?>

Scaffolding en funcionamiento

Acceder a la URL http://localhost/autores, para verlo.
Se representa una tabla con una entrada - Andres Yaz.