Processwire
| ProcessWire | ||
|---|---|---|
|
| ||
| Información general | ||
| Tipo de programa | Sistema de gestión de contenidos | |
| Desarrollador | Ryan Cramer | |
| Licencia | Mozilla Public License 2.0 | |
| Información técnica | ||
| Programado en | PHP | |
| Versiones | ||
| Última versión estable | Release 3.0.25516 de enero de 2026 | |
| Enlaces | ||
ProcessWire es un sistema de gestión de contenidos (CMS) libre y de código abierto, un marco de gestión de contenidos (CMF) y un framework de aplicaciones web (WAF) escrito en el lenguaje de programación PHP. Se distribuye bajo la Mozilla Public License 2.0. ProcessWire está construido alrededor de una API con convenciones de uso y nomenclatura similares al framework de JavaScript jQuery. El objetivo declarado detrás de la API es proporcionar el mismo nivel de accesibilidad y control sobre las páginas de un sitio web que jQuery proporciona al DOM.[1] El contenido se gestiona mediante la API o el panel de control administrativo basado en web. ProcessWire se utiliza principalmente para el desarrollo de sitios web, aplicaciones web, servicios, feeds de contenido y aplicaciones relacionadas.
Características
[editar]- API estilo jQuery con documentación completa[2]
- Instalador gráfico basado en web
- Todos los campos son campos personalizados, indexados para operaciones de búsqueda en la API
- Puede inicializarse desde otras aplicaciones PHP o scripts de línea de comandos[3]
- Funciones interactivas de manipulación de imágenes basadas en API
- Lista de páginas en árbol con arrastrar y soltar
- Carga y edición de archivos e imágenes mediante arrastrar y soltar
- Soporte para instalaciones de gran escala (más de 100,000 páginas)
- Uso de selectores basados en cadenas para llamadas API[4]
- Sistema de control de acceso basado en roles
- Énfasis del desarrollo central en seguridad[5]
- Salida agnóstica de marcado, dejando toda la salida al desarrollador
- Los archivos de plantilla están basados en PHP, no se utiliza motor de plantillas por defecto
- Almacenamiento en caché de salida de páginas completas o partes individuales
- Soporte multilingüe con campos de texto y URLs multilingües[6]
- Arquitectura de plugins modular y módulos de terceros disponibles[7]
- Los tipos de campo y entrada son en sí mismos módulos de plugin
- Sistema de hooks que permite enganchar y alterar la mayoría de las funciones principales[8]
- Los campos y grupos de campos son repetibles usando tipos de campo Repeater integrados
- Soporte para edición de texto enriquecido usando CKEditor
- Múltiples opciones de diseño de tema de administración, incluido el moderno tema "Konkat Default"
- Capacidades de edición frontal integradas en el núcleo
- Soporte de espacios de nombres PHP
Módulos y extensibilidad
[editar]ProcessWire tiene una arquitectura de plugin modular donde los módulos sirven como el método principal para extender la funcionalidad. En su núcleo, ProcessWire en sí es en gran medida una colección de módulos, siendo la aplicación de administración compuesta completamente de módulos. Los módulos en ProcessWire vienen en varias variedades:
- Módulos principales - Incluidos con el núcleo de ProcessWire en el directorio `/wire/modules/`. Muchos están preinstalados, mientras que otros están disponibles para instalación con un clic
- Módulos del sitio - Módulos de terceros o personalizados instalados en el directorio `/site/modules/`
- Módulos Pro - Módulos comerciales desarrollados por el desarrollador principal que proporcionan funcionalidad avanzada
A partir de 2026, hay más de 637 módulos disponibles en el directorio de módulos de ProcessWire.[9] El número relativamente menor de módulos en comparación con otras plataformas CMS como WordPress se atribuye al núcleo rico en características de ProcessWire, que incluye funcionalidad integrada que de otro modo requeriría plugins separados.[10]
Tipos de módulos
[editar]ProcessWire admite varios tipos de módulos predefinidos:
- Módulos Fieldtype - Definen tipos de campo personalizados para almacenar diferentes tipos de datos
- Módulos Inputfield - Proporcionan interfaces de entrada para campos en el administrador
- Módulos Process - Crean páginas y procesos de administración
- Módulos Textformatter - Formatean y transforman la salida de texto
- Módulos Markup - Generan marcado y HTML
- Módulos Autoload - Se cargan automáticamente cuando ProcessWire se inicia, útiles para hooks
La instalación de módulos se simplifica mediante múltiples métodos: carga de archivos ZIP a través del administrador, proporcionar URLs de descarga o colocar manualmente archivos en el directorio de módulos.
Módulos Pro comerciales
[editar]ProcessWire ofrece varios módulos Pro comerciales desarrollados por Ryan Cramer, el desarrollador principal:
- FormBuilder - Una herramienta completa de construcción de formularios para crear y administrar formularios sin codificación[11]
- ProFields - Una colección de potentes tipos de campo que incluyen módulos Repeater Matrix, Table, Combo y Custom Fields[12]
- ProCache - Módulo de almacenamiento en caché avanzado para optimización del rendimiento
- ProMailer - Herramientas de gestión de correo electrónico
- ProDrafts - Gestión de borradores y revisiones
- ListerPro - Lista avanzada y gestión de páginas
- LoginRegisterPro - Sistema completo de registro e inicio de sesión de usuarios
Los ingresos de los módulos Pro apoyan el desarrollo continuo del núcleo gratuito de ProcessWire.
Audiencia
[editar]Antes y durante el desarrollo de un sitio web o aplicación, la audiencia de ProcessWire consiste en gran medida de desarrolladores web y diseñadores web.[13] Dentro de esta audiencia, ProcessWire se utiliza tanto como herramienta de desarrollo como CMS.
Después del desarrollo, la audiencia cambia a individuos que gestionan contenido para sitios web y aplicaciones, que típicamente no son diseñadores/desarrolladores web. Esta audiencia utiliza ProcessWire principalmente como CMS para gestionar contenido.
Historia
[editar]ProcessWire ha estado en desarrollo activo desde 2003. De 2003 a 2007 se desarrolló bajo el nombre de Dictator CMS. De 2007 a 2010 se desarrolló como ProcessWire 1.x. ProcessWire se convirtió en un proyecto comunitario de código abierto en 2010 y actualmente se desarrolla como ProcessWire 2.x y 3.x.[14]
ProcessWire ha tenido múltiples lanzamientos de versiones significativos desde el primer lanzamiento de código abierto. La versión 3.0 lanzada en septiembre de 2016 marcó el segundo lanzamiento de versión principal, introduciendo espacios de nombres PHP, capacidades de edición frontal y soporte para módulos compilados.[15]
La versión 3.0.255, lanzada el 16 de enero de 2026, introdujo varias mejoras importantes:
- Un nuevo tema de diseño de administración moderno llamado "Konkat Default" creado por Konkat Studio (Jan Ploch y Diogo Oliveira), proporcionando un aspecto más contemporáneo que se puede alternar con el diseño original "Core Original"
- Funcionalidad mejorada de Markup Regions, permitiendo la modificación de regiones de marcado desde archivos que anteriormente solo las definían
- Documentación API mejorada para aproximadamente 50 módulos principales
- Actualizaciones a las funciones API de JavaScript principales para usar modales Uikit en lugar de modales Vex
- Nuevos métodos API de JavaScript para codificación/decodificación de entidades
- Introducción del módulo ZipFileValidator para mayor seguridad[16]
El sistema ha mantenido consistencia y compatibilidad hacia atrás a lo largo de su desarrollo, con actualizaciones continuas mientras preserva los conceptos de API originales y las convenciones de nomenclatura.
Traducciones y comunidad
[editar]ProcessWire tiene comunidades activas y globales de usuarios finales y desarrolladores. Estas comunidades han traducido ProcessWire del inglés a sus idiomas nativos, incluyendo: chino, croata, checo, neerlandés, francés, alemán, griego, hebreo, húngaro, italiano, japonés, portugués, ruso, eslovaco, español, sueco, turco, ucraniano y vietnamita. El centro principal de las comunidades de ProcessWire se encuentra en los foros de soporte para desarrolladores.[13]
Comparación con otras plataformas
[editar]ProcessWire a menudo se compara con otros sistemas de gestión de contenidos, particularmente WordPress. La comparación oficial destaca varias diferencias clave:
- ProcessWire está construido como un framework primero, con el CMS como una aplicación encima, mientras que WordPress se originó como una plataforma de blogs
- Todos los campos en ProcessWire son campos personalizados por defecto, mientras que WordPress distingue entre campos estándar y personalizados
- ProcessWire usa una estructura de árbol de páginas jerárquico para todo el contenido, mientras que WordPress usa tipos de publicaciones y taxonomías separadas
- ProcessWire enfatiza el control del desarrollador sobre el marcado de salida, siendo agnóstico de marcado, mientras que WordPress usa sistemas de temas
- ProcessWire tiene un ecosistema de módulos más pequeño (más de 600 módulos) en comparación con WordPress (más de 40,000 plugins), en gran parte porque la funcionalidad principal es más completa[17]
Premios y publicaciones
[editar]En noviembre de 2016, ProcessWire fue galardonado como el Mejor CMS para Pequeñas Empresas de CMS Critic.[18]
En julio de 2016, Smashing Magazine publicó A Beginners Guide to ProcessWire.[19]
Desde enero de 2016, Envato Tuts+ ha publicado varios artículos y tutoriales sobre ProcessWire.[20]
En enero de 2015, ProcessWire fue galardonado como el Mejor CMS PHP Gratuito de CMS Critic.[21]
En diciembre de 2014, PHP Architect publicó ProcessWire: Flexibility, Power, and a Generous Dose of Pure Fun.[22]
En diciembre de 2012, ProcessWire fue galardonado como el Mejor CMS Gratuito de CMS Critic.[23]
Arquitectura
[editar]ProcessWire está construido alrededor de un árbol de contenido de páginas (en oposición a un sistema de cubetas). La URL o ruta de cada página siempre refleja su lugar en la jerarquía. Se usa la misma ruta para referenciar la página en la API. Como resultado, esta conexión de la ruta a la jerarquía de árbol interno define la arquitectura de ProcessWire. Más allá de la relación padre-hijo implícita por un árbol de contenido, ProcessWire admite referencias relacionales uno a uno y uno a muchos entre páginas en el árbol.
Arquitectura de plantillas
[editar]Las plantillas en ProcessWire son un tipo de contenido que contiene uno o más campos personalizados que representan la definición del tipo de contenido. Cada página en ProcessWire se asigna a una plantilla que luego representa el tipo de página. Una plantilla típicamente se comparte entre múltiples páginas. Las plantillas también definen control de acceso, almacenamiento en caché y otras configuraciones compartidas entre páginas que usan la plantilla.
Las plantillas opcionalmente tienen un archivo PHP asociado, denominado archivo de plantilla. Este archivo se ejecuta cada vez que se accede a la URL de una página que usa la plantilla. Como resultado, los archivos de plantilla se usan típicamente para propósitos de salida. Al archivo de plantilla se le proporcionan varias variables de API, siendo la más notable la variable de API $page, que contiene todos los campos y contenido de la página actual que se está viendo.[24]
Los archivos de plantilla sirven a múltiples contextos, dependiendo de la aplicación. Los perfiles de sitio web predeterminados de ProcessWire usan archivos de plantilla principalmente para la salida de marcado HTML directo y generado dinámicamente. Los archivos de plantilla también pueden usarse como controladores intermedios entre un modelo y una vista separada. Debido a que los archivos de plantilla son archivos PHP regulares, pueden llamar a otros servicios web o aplicaciones PHP cuando sea apropiado, sin una capa de análisis separada.
Arquitectura de campos
[editar]Todos los campos en ProcessWire son campos personalizados definidos por el usuario. Un campo dado puede asignarse a múltiples plantillas, que a su vez contienen fragmentos individuales de contenido para cada página que usa esa plantilla. Cada campo tiene un tipo, denominado "fieldtype" (una palabra), un tipo de módulo de plugin. ProcessWire incluye varios módulos fieldtype, incluidos aquellos que admiten texto, números, archivos, imágenes, referencias de páginas, URLs, direcciones de correo electrónico, fechas y comentarios. Los módulos fieldtype adicionales se instalan como módulos de terceros.
Estructura de páginas
[editar]ProcessWire usa una estructura de árbol jerárquica para organizar todo el contenido como páginas. Esta estructura es similar a un sistema de archivos, sin límites impuestos en la profundidad. El sistema está diseñado para escalar desde sitios web de una sola página hasta instalaciones con millones de páginas mientras mantiene un rendimiento consistente y facilidad de uso. Toda la navegación y relaciones entre contenido se basan en esta estructura de árbol, que se puede recorrer tanto a través de la interfaz de administración como de la API.
Seguridad
[editar]ProcessWire pone un fuerte énfasis en la seguridad a lo largo de su desarrollo central. El sistema incluye:
- Control de acceso basado en roles con permisos granulares
- Protección integrada contra vulnerabilidades comunes (inyección SQL, XSS, CSRF)
- Auditorías y actualizaciones de seguridad regulares
- Herramientas de validación y saneamiento en toda la API
- Validación de carga de archivos y medidas de seguridad
- Funciones de seguridad de sesión
ProcessWire ha mantenido un sólido historial de seguridad a lo largo de su historia, sin incidentes de seguridad importantes ni interrupciones.[25]
Distribución y requisitos
[editar]El código fuente de ProcessWire está alojado en GitHub y también se distribuye en Softaculous, Bitnami y Composer/Packagist.
ProcessWire se ejecuta en la plataforma AMP (Apache, MySQL o MariaDB, PHP) utilizada por muchos proveedores de alojamiento y entornos de desarrollo web. ProcessWire requiere PHP versión 5.3.8 o más reciente, y MySQL o MariaDB 5.0.15 o más reciente.[26]
Referencias
[editar]- ↑ «The concept behind the API» (en inglés).
- ↑ «ProcessWire API reference documentation» (en inglés).
- ↑ «Bootstrapping ProcessWire» (en inglés).
- ↑ «Selectors in ProcessWire» (en inglés).
- ↑ «ProcessWire Security» (en inglés).
- ↑ «Multi-language support» (en inglés).
- ↑ «Directory of modules» (en inglés).
- ↑ «ProcessWire Hooks» (en inglés).
- ↑ «ProcessWire modules directory» (en inglés).
- ↑ «A Beginner's Guide to ProcessWire». Smashing Magazine (en inglés). 22 de julio de 2016.
- ↑ «FormBuilder» (en inglés).
- ↑ «ProFields» (en inglés).
- 1 2 «ProcessWire community» (en inglés). 26 de enero de 2024.
- ↑ «ProcessWire history and background» (en inglés).
- ↑ «ProcessWire 3.0 changelog» (en inglés).
- ↑ «ProcessWire 3.0.255 new main/master version» (en inglés). 23 de enero de 2026.
- ↑ «WordPress vs ProcessWire comparison» (en inglés).
- ↑ «CMS Critic 2016 awards (November 2016)» (en inglés). 12 de noviembre de 2012.
- ↑ «Smashing Magazine: A Beginners Guide to ProcessWire» (en inglés). 22 de julio de 2016.
- ↑ «Envato Tuts+: ProcessWire tutorials and articles» (en inglés). 22 de agosto de 2017.
- ↑ «CMS Critic Best Free PHP CMS award (January 2015)» (en inglés). 21 de enero de 2015.
- ↑ «ProcessWire published in PHP Architect Magazine (December 2014)» (en inglés).
- ↑ «CMS Critic Best Free CMS award (December 2012)» (en inglés). 3 de diciembre de 2012.
- ↑ «The $page API variable» (en inglés).
- ↑ «What's unique about ProcessWire» (en inglés).
- ↑ «How to install ProcessWire CMS». processwire.com (en inglés). Consultado el 2 de mayo de 2024.