MuniManantay

MuniManantay

Municipalidad de Manantay

The Word of the Lord

The Word of the Lord

BroadCasts Religious

Prentice Cleanning

Prentice Cleanning

Specializes in exceptional

MayaSpace

MayaSpace

Baby Patron | Web Personal

Sep
08

Clases y Métodos abstractos en PHP 5

Escrito por Carlos Montalvo hace 3 meses y 3 semanas, archivado en Desarrollo Web

Como su mismo nombre lo dice, las clases abstractas se utilizan en la OOP para especificar objetos abstractos. Solo sirven para ser heredadas por otras clases o para usarlas sin instanciar es decir son aquellas que forzosamente se ha de derivar si se desea que se puedan crear objetos de la misma o acceder a sus miembros estáticos.

Cuando una clase contiene un método abstracto tiene que declararse abstracta. No obstante, no todos los métodos de una clase abstracta tienen que ser abstractos.

		abstract class Number
	{
		private $value;
		abstract public function value();
		public function reset()
		{
			$this->value = NULL;
		}

	}

	class Integer extends Number
	{
		private $value;
		public function value()
		{
			return (int) $this->value;
		}
	}

	$num = new Integer; /* Bien */
	$num2 = new Number; /* Mal */

Hemos creado una clase abstracta, Number que se extendiendo por la clase Integer. Como hemos declarado la clase Number como abstracta, no podemos crear una instancia de ella. Si miramos a la clase Number, podremos comprobar que se define 2 funciones: value() y resert(). En una clase abstracta, no es necesario proporcionar ningún código para métodos, aunque podemos incluir si lo deseamos. En el caso de la clase Number, como value() es algo específico a un tipo determinado de número, se deja para que lo implante la clase hija.

Para forzar este comportamiento en un código de escritura de desarrollador, la palabra clave abstract utilizada para identificarlo tiene simplemente un marcador de posición en la clase Number, algo que no obstante, no es cierto para el método reset(), que es consistente para cualquier tipo de número específico.

Las clases abstractas pueden extenderse sin implantar todos los métodos abstractos definidos dentro. Es decir, una clase hija puede también declararse como abstracta si no implanta todos los métodos abstractos de su padre(o padres).

Tags: , , , , ,
Sep
06

Convertir Array de datos en Objeto y viceversa (PHP)

Escrito por Carlos Montalvo hace 3 meses y 3 semanas, archivado en Desarrollo Web

En el foro de WebLiveHelp trataban un problema de conversión de array a objeto y viceversa no se si es el mejor método de conversión pero creo una alternativa seria esta..

// Funcion de Objeto a Array
function object_to_array($object)
{
  if(is_array($object) || is_object($object))
  {
    $array = array();
    foreach($object as $key => $value)
    {
      $array[$key] = object_to_array($value);
    }
    return $array;
  }
  return $object;
}

// Funcion de Array a Objeto
function array_to_object($array = array())
{
	return (object) $array;
}

Metodo de funcionamiento
- Trabajando con array_to_object

//creamos un array de dominios
$array_urls = array("a"=>"calinsoft.com","b"=>"gacetaucayalina.com","c"=>"jacknoticias.com");

//Se vuelca la informacion para darnos cuenta de la estructura.
echo "<pre>";
	var_dump($array_urls);
echo "</pre>";

/* nos dara
array(3) {
  ["a"]=>
  string(13) "calinsoft.com"
  ["b"]=>
  string(19) "gacetaucayalina.com"
  ["c"]=>
  string(16) "jacknoticias.com"
}
*/

//Ahora ese array lo convertimos en objeto mediante la funcion "array_to_object"
$object_urls =	array_to_object($array_urls);

//Volcamos la informacion de la conversion
echo "<pre>";
	var_dump($object_urls);
echo "</pre>";

/* nos dara
object(stdClass)#1 (3) {
  ["a"]=>
  string(13) "calinsoft.com"
  ["b"]=>
  string(19) "gacetaucayalina.com"
  ["c"]=>
  string(16) "jacknoticias.com"
}
*/

//Y con el objeto ya creado para mostrar el valor "a"
echo $object_urls->a;
/*nos dara
    "calinsoft.com"
*/

- Trabajando con object_to_array


//Ahora creamos una clase sencilla

class object_urls{

	var $a ;
	var $b ;
	var $c ;

	//php5
	function __construct(){
		$this->a ="calinsoft.con";
		$this->b ="gacetaucayalina.com";
		$this->c ="jacknoticias.com";

	}

	//php4
	function object_urls(){
		$this->__construct();
	}

}

//creamos un instancia de la clase
$object_urls2 = new object_urls();

//Se vuelca la informacion del objeto para darnos cuenta de su estructura.
echo "<pre>";
	var_dump($object_urls2);
echo "</pre>";
/* nos dara
object(object_urls)#2 (3) {
  ["a"]=>
  string(13) "calinsoft.con"
  ["b"]=>
  string(19) "gacetaucayalina.com"
  ["c"]=>
  string(16) "jacknoticias.com"
}

*/

//Ahora convertimos la clase en array mediante la funcion "object_to_array"
$array_urls2 = object_to_array($object_urls2) ;

//Volcamos la informacion de la conversion
echo "<pre>";
	var_dump($array_urls2);
echo "</pre>";
/*nos dara
array(3) {
  ["a"]=>
  string(13) "calinsoft.con"
  ["b"]=>
  string(19) "gacetaucayalina.com"
  ["c"]=>
  string(16) "jacknoticias.com"
}
*/

//Para trabajas con el array solo
echo $array_urls2["a"];

/*nos dara
    "calinsoft.com"
*/

Espero que les aya servido :) .

Tags: , ,

Leo en PHPRO un excelente tutorial sobre la creación de una aplicación Web en PHP en este caso se trata de un BLOG, donde mediante un índice nos detalla paso a paso la forma de construirlo muy bueno para mi gusto como factor añadido nos da la posiblidad de descargar la aplicación en si [descaga].

Sep
06

Detección Simple de Servidor Web mediante PHP

Escrito por Carlos Montalvo hace 3 meses y 3 semanas, archivado en Desarrollo Web

Esta es una detección simple mediante las variables globales definidas por el servidor Web para este caso usaremos $_SERVER.

//para Apache
$es_apache = ((strpos($_SERVER['SERVER_SOFTWARE'], 'Apache') !== false) || (strpos($_SERVER['SERVER_SOFTWARE'], 'LiteSpeed') !== false)) ? true : false;

//para IIS (Internet Information Server)
$es_IIS = (strpos($_SERVER['SERVER_SOFTWARE'], 'Microsoft-IIS') !== false) ? true : false;

//Metodo de uso
if ($es_apache) echo " Estamos Bajo Apache ";

if ($es_IIS) echo " Estamos IIS ";
Tags: , , ,
Sep
04

Validar email con PHP y expresiones regulares

Escrito por Carlos Montalvo hace 3 meses y 3 semanas, archivado en Desarrollo Web

Esta función nos ayuda a comprobar si una cadena o campo específico en un formulario es un email o no.

function es_email($email) {
	$regex = "/^([a-z0-9+_]|\\-|\\.)+@(([a-z0-9_]|\\-)+\\.)+[a-z]{2,6}\$/i";
	//comprovamos si la cadena tiene el simbolo de @ y el punto
	if (strpos($email, '@') !== false && strpos($email, '.') !== false) {
	//comparamos con la expresion regular la cadena
		if (preg_match($regex, $email)) {
			return true;
		} else {
			return false;
		}
	} else {
		return false;
	}
}

//metodo de uso

if (es_email("miemail@dominio.com")):
	echo "es valido";
else:
	echo "invalido";
endif;
Tags: , , ,
Sep
04

Scripts 09/04

Escrito por Carlos Montalvo hace 3 meses y 3 semanas, archivado en Desarrollo Web
  • ezSQL Database Class
    Como su nombre lo dice es una clase escrita en PHP que nos facilita el acceso a base de datos, podemos usarlo con MySQL, Oracle8, InterBase/FireBird, PostgreSQL, SQLite o MS-SQL
  • PHPMailer
    Es una clase escrita en PHP que facilita el envío de correo, añadiendo facilidad en el envío de correos con adjuntos, en formato HTML y con diferentes codificaciones, soporte para imágenes embebidas, headers personalizados y además funciona con múltiples servidores de correo.
  • Smarty
    Sistema de plantillas para PHP.
  • Magpie RSS
    MagpieRSS (alias Magpie) es un Clase analizador de RSS y Atom para PHP y es la base de varios agregadores y buscadores de blogs.
  • EZ Results Paging Class
    Es una clase para la paginación de datos, es muy configurable y muy fácil de usar.
Tags: , , ,
Ago
31

Urls Amigables basado en WP_Rewrite API

Escrito por Carlos Montalvo hace 4 meses y 9 horas, archivado en Desarrollo Web

El tema de las Urls Amigables (friendly urls) esta relacionado con el SEO y el posicionamiento Web en los diversos buscadores algo que se a hablado hasta el cansancio, los métodos de poder construirlas son como los colores ( para todos los gustos ).

En la actualidad las Urls Amigables (friendly urls) no es una simple moda Web 2, si no que en sistemas de gestión de contenidos y servicios prestigiosos como Blogger, Drupal, Wordpress y muchos más lo tienen implementado. ¿Pero cual es el mejor? ya de por si se sabe que implementando Urls Amigables en tus paginas o proyectos Web estas a 2 o 3 pasos arriba que otras paginas que usan las Urls tradicionales muy aparte de la publicidad o herramientas de posicionamiento que usen.

Al principio no todos podían usar Urls Amigables en sus sitios, mucho dependía de tener activado el mod_rewrite , aun que wordpress fue un paso mas allá y nos dio una solución como nos comentaba Andres Nieto a principios de año desconozco si wordpress fue el pionero en esto.

En el posicionamiento Web 2 de los mejores son Blogger y Wordpress por el método que usan aunque este ultimo con la opción de personalizar la estructura de la url a nuestro gusto por ser una herramienta de construcción de blogs de codigo abierto que a permitido que crezca gracias a la comunidad que lo rodea.

Las hasta 3 formas mas conocidas de construir las Urls Amigables es mediante PATH_INFO, mediante directivas en el archivo .htaccess como nos explica manu en TuFunción o mediante peticiones $_GET como nos enseña William Wong Garay en MaestrosDelWeb.

Todos estos métodos construyen Urls Amigables pero tienen sus limitaciones.

  • PATH_INFO no se puede expandir la estructura de Urls Amigables
  • mod_rewrite y .htaccess mientras mas directivas se ralentiza el servidor
  • Metodo $_GET limite del numero de variables a enviar como explica Willy

¿Cual método usa Wordpress? si observamos su archivo .htaccess solo utiliza unas directivas simples.

# BEGIN WordPress

RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]

# END WordPress

El archivo clave es wp-includes/rewrite.php (WP_Rewrite API) el encargado de identificar las peticiones que se hacen en el sistema.

¿Pero como trabaja? muy simple con reglas muy similares a las que se usan en el .htaccess con diferencia que estas se procesan en un archivo php y acelerando el proceso.

¿Pero como implementarlo en una pagina que no sea wordpress? … destripando el codigo he logrado desarrollar una clase muy básica basada en WP_Rewrite API que nos permitirá personalizar la estructura de las Urls amigables al estilo Wordpress.

Pueden verlo en funcionamiento en http://web2developement.calinsoft.com/urls-amigables .

El funcionamiento es básico la regla esta compuesta de una Expresion Regular y la marca que vendría hacer los parámetros a usar.

// para poder obtener una estructura /2008/08/28/urls-amigables-facilmente
$this->rules["([0-9]{4})/([0-9]{1,2})/([0-9]{1,2})/(.+?)/?$"]="y=\$matches[1]&m=\$matches[2]&d=\$matches[3]&nslug=\$matches[4]";

//la cual mediante una identificación y parseo previo obtendríamos los valores listo para usarlos segun lo deseemos

Array
(
    [y] => 2008
    [m] => 08
    [d] => 28
    [nslug] => urls-amigables-facilmente
)

Los interesados pueden comentar si creen que es un buen método, tratare de afinar el script y lo publicare en estos días para mis lectores de Feed tendrán una sorpresa.

Tags: , , , , , ,
  1 2 3 4