From b294b1d62703a23f0adf4080c156c82670e5772a Mon Sep 17 00:00:00 2001 From: KJ Date: Mon, 13 May 2024 00:58:00 -0400 Subject: [PATCH] Update readme. Fix description and add links to starting manual. --- readme.org | 106 ++++++++++++++++++++++++++++++++++++++++++++++++----- rework.org | 95 ----------------------------------------------- 2 files changed, 96 insertions(+), 105 deletions(-) delete mode 100644 rework.org diff --git a/readme.org b/readme.org index 285c07d..6aa2ad5 100644 --- a/readme.org +++ b/readme.org @@ -1,20 +1,106 @@ -* DuckBrain - PHP Microframework +#+TITLE: Duckbrain +#+AUTHOR: KJ +#+OPTIONS: toc:nil -Este microframework PHP tiene el objetivo de presentar un framework sencillo y potente que sea válido especialmente para proyectos pequeños o simples, sin limitar demasiado, ni depender de cosas que agranden innecesariamente proyectos. +Este conjunto de librerías (microframework, si así lo prefieres) tiene el objetivo de presentar una herramienta de trabajo sencilla y potente que sea válida especialmente para proyectos pequeños o simples, sin limitar, ni depender de cosas que agranden innecesariamente dichos proyectos. -Esto no es un intento de mi parte de reinventar la rueda, de hecho los primeros commits los hice con la intención de que solo fuera una prueba de concepto, pero me gustó como quedó y decidí darle continuidad hasta hacerlo usable para mi mismo. +Tuve la idea de hacer esta herramienta luego de ver como proyectos relativamente pequeños eran hechos con frameworks demasiado grandes para la envergadura de dichos proyectos. No es bueno matar moscas a cañonazos. -Tuve la idea de hacer este conjunto de librerías/microframework luego de ver como proyectos relativamente pequeños eran hechos con frameworks demasiado pesados para lo que eran. +Del mismo modo revisé algunos microframeworks y si bien me parecen una buena opción, aún me quedaba la espinita de que seguían siendo muy complejos para que un programador novato pudiera leer su código, entenderlo y modificarlo, así que intenté hacer algo más simple -También revisé otros microframeworks y si bien me parecen una buena opción para hacer los trabajos, aún me quedaba la espinita de que seguían siendo muy grandes para que un programador novato pudiera leerlo, entenderlo y modificarlo, así que intenté hacer algo más simple aún y de ahí salió este proyecto. - -Lo ideal sería mantener el código sencillo, lo suficiente como para que cualquier novato que sepa POO y PHP pueda leerlo rápido, entenderlo y modificarlo a gusto. Por este motivo también he decidido desligarlo en lo posible de composer o cualquier cosa similar, ya que no pocos programadores en etapa de aprendizaje al encontrarse con frameworks más complicados o con herramientas como composer, terminan trabajando con cosas que no comprenden ni pueden arreglar por si mismos en caso de fallo, ya que son completamente dependientes de dichas herramientas. - -El código no es perfecto, pero lo iré perfeccionando, ya que es algo que estoy usando actualmente para mis trabajos, de modo que puedo ir viendo que cosas se pueden ir mejorando. +Lo que busco es mantener un código sencillo, lo suficiente como para que cualquier novato que sepa POO y PHP pueda leer su código rápidamente, entenderlo y modificarlo a gusto. Por este motivo también he decidido desligarlo en lo posible de composer o cualquier cosa similar, ya que no pocos programadores en etapa de aprendizaje al encontrarse con frameworks más complicados o con herramientas como composer, terminan trabajando con cosas que no comprenden ni pueden arreglar por si mismos en caso de fallo, llevándolos a la dependencia total de dichas herramientas. * Uso / Documentación -Queda pendiente, si quieres usarlo ya mismo, puedes leer los comentarios que he colocado en el código o usar [[https://www.phpdoc.org/][phpdoc]] para generarla a partir de los bloques de comentarios. +Actualmente existe un manual de inicio que puedes leerlo desde [[https://tools.kj2.me/duckbrain/starting-manual.html][aquí]] o desde [[https://git.kj2.me/kj/duckbrain-docs/src/branch/master/starting-manual.org][aquí]]. + +Si quieres leer el manual de inicio en su formato original (necesitas un editor/lector que soporte org-mode) puedes descargarla desde [[https://tools.kj2.me/duckbrain/starting-manual.org][aquí]]. + +Para el resto de la documentación, el código usa [[https://www.phpdoc.org/][phpdoc]], por lo que puedes tener toda la documentación API desde tu IDE o Editor de texto preferido siempre que soporte dicha característica. O si lo prefieres, puedes generarla en unbonito htm local usando la herramienta [[https://docs.phpdoc.org/3.0/packages/phpDocumentor.html][phpDocumentor]]. + +* Soporte de gestores de bases de datos + +En la siguiente tabla se encuentra la lista de estados de los gestores de bases de datos que he probado o que planeo probar para asegurarme de que sean realmente compatibles. + +*Entiéndase*: + ++ *ok* como que ha sido probado y funciona. ++ *En blanco* como que no ha sido probado aún. ++ *error* como que fue probado, no funciona y no ha sido aún arreglado. ++ *not supported* como no soportado por el gestor de bases de datos. ++ *fixed* para aquello que no existe en el gestor de DB, pero la librería lo traduce a un equivalente. + +|------------------+---------------+---------------+------------| +| method | MySQL/MariaDB | sqlite3 | postgreSQL | +|------------------+---------------+---------------+------------| +| db | ok | ok | | +|------------------+---------------+---------------+------------| +| query | ok | ok | | +|------------------+---------------+---------------+------------| +| resetQuery | ok | ok | | +|------------------+---------------+---------------+------------| +| buildQuery | ok | ok | | +|------------------+---------------+---------------+------------| +| getInstance | ok | ok | | +|------------------+---------------+---------------+------------| +| getVars | ok | ok | | +|------------------+---------------+---------------+------------| +| className | ok | ok | | +|------------------+---------------+---------------+------------| +| table | ok | ok | | +|------------------+---------------+---------------+------------| +| update | ok | ok | | +|------------------+---------------+---------------+------------| +| beginTransaction | ok | ok | | +|------------------+---------------+---------------+------------| +| rollBack | ok | ok | | +|------------------+---------------+---------------+------------| +| commit | ok | ok | | +|------------------+---------------+---------------+------------| +| add | ok | ok | | +|------------------+---------------+---------------+------------| +| save | ok | ok | | +|------------------+---------------+---------------+------------| +| delete | ok | ok | | +|------------------+---------------+---------------+------------| +| select | ok | ok | | +|------------------+---------------+---------------+------------| +| from | ok | ok | | +|------------------+---------------+---------------+------------| +| where | ok | ok | | +|------------------+---------------+---------------+------------| +| where_in | ok | ok | | +|------------------+---------------+---------------+------------| +| leftJoin | ok | ok | | +|------------------+---------------+---------------+------------| +| rightJoin | ok | not supported | | +|------------------+---------------+---------------+------------| +| innerJoin | ok | ok | | +|------------------+---------------+---------------+------------| +| and | ok | ok | | +|------------------+---------------+---------------+------------| +| or | ok | ok | | +|------------------+---------------+---------------+------------| +| groupBy | ok | ok | | +|------------------+---------------+---------------+------------| +| limit | ok | ok | | +|------------------+---------------+---------------+------------| +| orderBy | ok | ok | | +|------------------+---------------+---------------+------------| +| count | ok | ok | | +|------------------+---------------+---------------+------------| +| getById | ok | ok | | +|------------------+---------------+---------------+------------| +| search | ok | ok | | +|------------------+---------------+---------------+------------| +| get | ok | ok | | +|------------------+---------------+---------------+------------| +| getFirst | ok | ok | | +|------------------+---------------+---------------+------------| +| all | ok | ok | | +|------------------+---------------+---------------+------------| +| setNull | ok | ok | | +|------------------+---------------+---------------+------------| * Contacto diff --git a/rework.org b/rework.org deleted file mode 100644 index f968473..0000000 --- a/rework.org +++ /dev/null @@ -1,95 +0,0 @@ -* Sobre la actualización -Previamente, el sistema usaba [[https://www.php.net/mysqli][MySQLi]] para el Modelo/ORM, como actualización, se ha cambiado para funcionar con [[https://www.php.net/pdo][PDO]]. - -* Notas de migración -Estos son detalles importantes a tomar en cuenta a la hora de migrar del anterior ModelMySQL (MySQLi) al actual Model (PDO). - -+ El modelo base ha cambiado de nombre de =ModelMySQL= a =Model=. -+ El método =query= ahora devuelve un =array= en lugar de un =mysqli_result=. -+ Se han depurado los métodos =sql_calc_found_rows= y =found_rows=. -+ Se ha cambiado =dbname=, =dbuser= y =dbpass= a =DB_NAME=, =DB_USER= y =DB_PASS=, respectivamente. -+ Se ha añadido la necesitad de la constante =DB_TYPE= para indicar el driver PDO a usar (ej. mysql, sqlite). - -* Pruebas - -En la siguiente tabla se encuentra la lista de estados de los SGBD que he probado (MySQL/MariaDB) o que planeo probar (sqlite3, postgreSQL) para asegurarme de que sean realmente compatibles. - -*Entiéndase*: - -+ *ok* como que ha sido probado y funciona. -+ En blanco como que no ha sido probado aún. -+ *error* como que fue probado, no funciona y no ha sido aún arreglado. -+ *not supported* como no soportado por el SGBD. -+ *fixed* para aquello que no existe, pero la librería lo traduce a un equivalente. - -|------------------+---------------+---------------+------------| -| method | MySQL/MariaDB | sqlite3 | postgreSQL | -|------------------+---------------+---------------+------------| -| db | ok | ok | | -|------------------+---------------+---------------+------------| -| query | ok | ok | | -|------------------+---------------+---------------+------------| -| resetQuery | ok | ok | | -|------------------+---------------+---------------+------------| -| buildQuery | ok | ok | | -|------------------+---------------+---------------+------------| -| getInstance | ok | ok | | -|------------------+---------------+---------------+------------| -| getVars | ok | ok | | -|------------------+---------------+---------------+------------| -| className | ok | ok | | -|------------------+---------------+---------------+------------| -| table | ok | ok | | -|------------------+---------------+---------------+------------| -| update | ok | ok | | -|------------------+---------------+---------------+------------| -| beginTransaction | ok | ok | | -|------------------+---------------+---------------+------------| -| rollBack | ok | ok | | -|------------------+---------------+---------------+------------| -| commit | ok | ok | | -|------------------+---------------+---------------+------------| -| add | ok | ok | | -|------------------+---------------+---------------+------------| -| save | ok | ok | | -|------------------+---------------+---------------+------------| -| delete | ok | ok | | -|------------------+---------------+---------------+------------| -| select | ok | ok | | -|------------------+---------------+---------------+------------| -| from | ok | ok | | -|------------------+---------------+---------------+------------| -| where | ok | ok | | -|------------------+---------------+---------------+------------| -| where_in | ok | ok | | -|------------------+---------------+---------------+------------| -| leftJoin | ok | ok | | -|------------------+---------------+---------------+------------| -| rightJoin | ok | not supported | | -|------------------+---------------+---------------+------------| -| innerJoin | ok | ok | | -|------------------+---------------+---------------+------------| -| and | ok | ok | | -|------------------+---------------+---------------+------------| -| or | ok | ok | | -|------------------+---------------+---------------+------------| -| groupBy | ok | ok | | -|------------------+---------------+---------------+------------| -| limit | ok | ok | | -|------------------+---------------+---------------+------------| -| orderBy | ok | ok | | -|------------------+---------------+---------------+------------| -| count | ok | ok | | -|------------------+---------------+---------------+------------| -| getById | ok | ok | | -|------------------+---------------+---------------+------------| -| search | ok | ok | | -|------------------+---------------+---------------+------------| -| get | ok | ok | | -|------------------+---------------+---------------+------------| -| getFirst | ok | ok | | -|------------------+---------------+---------------+------------| -| all | ok | ok | | -|------------------+---------------+---------------+------------| -| setNull | ok | ok | | -|------------------+---------------+---------------+------------|