Ir al contenido principal

MiCode Manager Versión 1.0

La espera ha terminado. 

Ya está publicada la primera versión funcional completa de miCode Manager. Esta versión fue desarrollada sin hacer uso de bases de datos, por lo que prácticamente solo se requiere tener instalado PHP para poder usarlo (8.1 o superior, preferiblemente). Eso y asignar los respectivos permisos para que se puedan crear y modificar archivos desde el aplicativo.

En caso que sea la primera vez que escuchas de este proyecto, te invito a visitar la presentación que hice hace algunos meses para que estés al tanto del qué, cómo y el porqué. El “para qué” se ilustra con este caso de uso publicado anteriormente. Respecto al “cuándo”, la respuesta es “ahora” y sobre eso trata esta entrada del blog.

¿Cómo comenzar?

Para usar miCode Manager primero descarga una copia del código publicado en Github o puedes también clonar el repositorio. Asegúrate de copiar los archivos en un directorio del servidor web en tu equipo local, de forma que puedas consultar desde el navegador web de tu preferencia el archivo “src\index.php”. Este script se encargará de solicitar la información y realizar las acciones que requiere el sistema para su primer uso. Esas acciones son:

  • Solicitud del Path asociado al proyecto “micode-admin”, que es el nombre de proyecto asignado a la interfaz de administración de miCode-Manager.
  • Configuración de los módulos externos requeridos. Con esta primera versión se solicitará la librería Parsedown, que puede descargarse de Github en https://github.com/erusev/parsedown. Dicha librería interpreta el formato Markdown para una visualización adecuada en el navegador web.
  • Creación de los archivos de soporte asociados a los módulos requeridos por la interfaz de administración (proyecto registrado con el nombre “micode-admin”).
  • Finalmente, tu nombre y correo electrónico, datos que serán usados para identificación del sistema (esta información quedará en tu equipo local de usuario y se usará en algunos casos para firmar scripts creados para tus proyectos).

Una vez terminados los procesos de configuración inicial, podrás usar miCode-Manager. El primer proyecto registrado es precisamente la interfaz de administración, que como se mencionó, lleva por nombre “micode-admin”.

Importante: Se recomienda configurar el servidor web usado para permitir direccionamiento dinámico (URL rewriting) en el directorio donde se instale miCode Manager y apuntar toda consulta sobre dicho directorio al script “index.php”. Esta recomendación no es mandatoria y el aplicativo puede funcionar correcta y completamente sin ella, pero su implementación permite una experiencia mucho más amplia en cuánto al manejo de las librerías incluidas en el proyecto.

Sugerido: Redireccionamiento dinámico en Apache

En servidores web Apache el direccionamiento dinámico (forzar todas las consultas realizadas a que sean redirigidas a un mismo script) puede conseguirse modificando el archivo de configuración (conf/http.conf) en una de dos formas:

  • Incluir directamente las directrices del direccionamiento deseado 
  • Indicarle que interprete el archivo “.htaccess” en el directorio de interés e incluir en dicho archivo las directrices del redireccionamiento.

Realizaremos el segundo tipo de configuración aprovechando que el repositorio contiene una copia del archivo “.htaccess” a usar. Para eso se adicionan las siguientes líneas:

<Directory "[directorio micode-manager]/src">
	AllowOverride All
	Require all granted
</Directory>

El mismo efecto puede obtenerse si se habilita el parámetro “AllowOverride All” a la configuración del directorio raíz (DocumentRoot). Sin embargo, Apache no recomienda este tipo de configuración (especialmente en entornos productivos) porque el servidor buscará el archivo “.htaccess” en cada ruta de cada consulta de cada página solicitada en el servidor web, lo que aumenta los tiempos de respuesta.

Una vez realizados los cambios, guarda el archivo de configuración y reinicia el servidor web. Si fue configurado correctamente, Apache interpretará el archivo “.htaccess” incluido en el repositorio y este se encargará del direccionamiento dinámico requerido.

Opciones de Menú

La vista principal de miCode Manager cuenta con los menús que se describen a continuación.

Proyectos: Lista los proyectos creados. Desde esta vista puedes acceder a cada proyecto y editar su configuración, módulos instalados, etc. Es importante aclarar que esta gestión se limita a copiar los archivos de cada módulo al directorio de proyecto (cómo se indicó en la presentación de este proyecto). Los scripts adicionales que se necesiten para que tu proyecto funcione, deberán ser creados manualmente usando tus herramientas de confianza.

Repositorios: Lista los repositorios creados. Por defecto se instala el repositorio “miframe”, que contiene los módulos incluidos con el sistema y que son usados por el administrador del mismo. Un segundo repositorio llamado “vendor” se crea durante el proceso de inicio, a usar (como sugerencia) para copiar allí cualquier librería desarrollada por terceros. También podrás adicionar los repositorios que consideres necesarios para tu uso personal.

Módulos: Lista los módulos administrados por miCode Manager. Desde este menú pueden editarse los módulos instalados y adicionar nuevos módulos. Los módulos se visualizan según el tipo de lenguaje asociado al módulo, como por ejemplo, PHP Script.

Tip: Se incluye un ejemplo de una implementación API/REST usando los módulos del sistema, puede consultarse la lista de módulos php usando la siguiente referencia (siempre que tenga habilitado el direccionamiento dinámico explicado anteriormente): 

[URL micode-manager]/src/api/modules/list/php

Tests: Contiene demos asociados a algunos de los módulos instalados.

Configuración: Permite configurar los valores del sistema, como tu nombre y correo electrónico, mismos que son asignados durante la secuencia de inicio al ejecutar por primera vez.

¿Dónde encontrarlo?

Como antes se indicó, el repositorio público para miCode Manager se encuentra en Github y puede ser consultado en la siguiente dirección:

https://github.com/jjmejia/micode-manager

Si tienes algún comentario o sugerencia para la mejora de este proyecto o si encuentras algún bug en la Matrix, por favor repórtalo en los comentarios de este blog. 

Nos vemos en una siguiente actualización.

Comentarios

Entradas populares de este blog

Manejo de clases globales únicas en PHP

¿Cómo acceder desde cualquier script en tu proyecto a Clases y/o funciones de uso común? Este puede ser una de las primeras directrices a establecer para cualquier proyecto porque siempre, siempre , sea en  PHP  u otro lenguaje, será necesario usar recursos comunes. En PHP existen diferentes alternativas para su manejo, ya sea por medio de variables globales o de clases/objetos estáticos. A continuación consideraremos una propuesta para este manejo. Creación de recursos globales Para ilustrar esta solución, partimos de la necesidad de implementar una librería para manejo de servicios relacionados con el servidor Web, que de forma amigable nos permita disponer de información como: Valores almacenados de la variable superglobal $_SERVER de PHP. Valores asociados a la consulta realizada por el usuario, por Ej. la dirección IP del usuario o la URL ingresada. Valores asociados al servidor web usado, por Ej. la dirección IP del servidor o la ubicación del script que ej...

Sesión de usuarios en aplicaciones web

Uno de los módulos más importantes y a la vez menospreciados cuando se aborda la tarea de crear un sitio web de servicios, ya sea para una intranet corporativa o un sistema de gestión de información ( SGI ) es la gestión y administración  requerida para una correcta implementación de sesiones de usuario. Y es que llevamos tanto tiempo usando usuarios y contraseñas en Internet, en cualquiera de sus muchas variaciones, que se asume muchas veces que esto ya forma parte del ADN de toda solución web y como tal, se destina muy poco tiempo y estudio a este apartado cuando se planifican las actividades de desarrollo. Lo cierto es que cada aplicación acostumbra desarrollar su propio esquema de manejo de sesiones y asumir que es algo superfluo puede equivaler a “pegarse un tiro en el pie”, especialmente cuando un módulo de este tipo se diseña desde ceros. Al referirse al manejo de sesiones de usuario suele pensarse únicamente en el proceso de capturar el nombre de usuario ( username ) y su ...

Caché de datos propios para agilizar ejecución de scripts PHP

De vez en cuando viene bien ayudar a PHP a generar respuestas de forma mucho más rápida y eficiente de lo que ya es capaz por si mismo. En mi opinión, la mejor forma de hacerlo es implementar un sistema de caché propio o (una opción un tanto más aburrida) reutilizar alguno ya existente. En este artículo detallaremos la implementación de una clase que permita este cometido. Aviso: Este artículo contiene ejemplos de programación en PHP aunque los conceptos explicados pueden ser aplicados a scripts realizados en cualquier otro lenguaje de programación. Para ilustrar este proceso, veamos el siguiente caso no tan hipotético: Una aplicación web hace uso de una API del clima. El resultado de la consulta es la misma para todos los usuarios y cambia solamente cada hora. Sin embargo, cada consulta tarda un tiempo promedio de 15 segundos. Esto implica que cada usuario deberá esperar esos 15 segundos para ver el resultado (sumado al tiempo que tome la visualización y otros procesos que deba real...