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

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 cont

Manejo de clases globales únicas en PHP

Imagen de Tumisu en Pixabay ¿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 de

¿Qué tan bueno es realmente el “foreach” en PHP?

Imagen de garionhk en Pixabay Como toda buena historia, esta comienza hace algún tiempo. El que fuera mi jefe por allá en la primera década del 2000, realmente odiaba (y mucho) el uso del foreach en el código PHP . Prefería que usáramos alguna alternativa diferente, alguna combinación del  for o del while . ¿Por qué? Ve tú a saber, nunca fue abierto respecto a las razones de su aprensión hacia ese constructor propio del lenguaje. Pero antes de continuar, veamos qué es y para qué nos puede servir. Arreglos, tenían que ser arreglos ¿Qué es foreach ? De acuerdo al manual de PHP , su definición es la siguiente: El constructor foreach proporciona un modo sencillo de iterar sobre arrays . foreach funciona sólo sobre arrays y objetos , y emitirá un error al intentar usarlo con una variable de un tipo diferente de datos o una variable no inicializada. Para su uso correcto existen dos sintaxis validas, a saber: foreach (expresión_array as $value) { ... } foreach (expresión_array as