wxPHP (por wxWidgets para PHP ) es una extensión para el lenguaje de programación PHP que integra la biblioteca wxWidgets , lo que permite escribir aplicaciones de escritorio multiplataforma que utilizan los componentes gráficos nativos disponibles para las diferentes plataformas. Es compatible con los tres principales sistemas operativos : Windows , Linux y macOS .
Historia
Cerca de 2003, un grupo de personas entusiastas comenzó a escribir en listas de correo [ 2 ] y foros presentando la idea de una extensión de PHP que envolviera la biblioteca wxWidgets de manera similar a como PHP-GTK lo hace para GTK +. Se creó un proyecto en SourceForge [ 3 ] y muchas personas se unieron [ 4 ] en un esfuerzo por impulsar la causa y hacerla realidad. A pesar de la voluntad de los miembros del proyecto, no se logró ningún progreso, [ 5 ] hasta que Mário Soares decidió unirse. [ 6 ] Después de la incorporación, se realizaron las primeras confirmaciones en el repositorio del Sistema de Versiones Concurrentes (CVS) en SourceForge. Las primeras confirmaciones consistieron en envolver la clase wxApp , wxFrame y algunos otros controles básicos, fue entonces cuando wxPHP vio la luz por primera vez. Inspirándose en generadores de envoltorios como Simplified Wrapper and Interface Generator ( SWIG ), se inició el desarrollo de un generador de código simple que leía la salida de GCCXML [ 7 ] procesada con wxWidgets y la transformaba en un array PHP serializado. Esto ayudó a ahorrar mucho tiempo en la monótona tarea de escribir el mismo código repetidamente para cada clase y sus métodos . Después de contar con algunas funciones y controles básicos, se escribió una aplicación usando wxPHP para ayudar al generador de código a seleccionar los métodos de clase que podía manejar correctamente.
En agosto de 2011, Jefferson González le escribió un correo electrónico al entonces responsable del proyecto, ofreciéndose a crear un sitio web para impulsar la presencia de wxPHP y atraer a más usuarios y colaboradores. Una vez que el sitio web estuvo en funcionamiento, comenzó a trabajar con el código fuente de wxPHP . Posteriormente, decidió habilitar más métodos y clases, descubriendo en el proceso que muchas funcionalidades no eran compatibles con el generador de código y la extensión. Tras varios correos electrónicos, el desarrollador anterior tuvo la idea de analizar la salida XML generada por Doxygen a partir de la documentación de wxWidget. Se encargó del trabajo y comenzó a mejorar el generador de código hasta reescribirlo, añadiendo la documentación faltante y muchas funcionalidades que permitirían agregar más funciones a wxWidgets.
Presente
A partir de 2012, wxPHP admite alrededor de 400 clases wxWidgets y miles de métodos, lo que permite desarrollar aplicaciones comerciales de escritorio. El código fuente del proyecto se encuentra alojado en GitHub . Se creó un generador de referencias que documenta las funciones compatibles con la extensión wxPHP. También se desarrolló un generador de interfaces [ 8 ] para obtener autocompletado de código en entornos de desarrollo integrados (IDE) como NetBeans y Eclipse . Se está planificando una nueva reescritura del generador de código utilizando un enfoque de programación modular y orientada a objetos que permita a otros usuarios generar código para otros wrappers de PHP. [ 9 ]
Diseñador de interfaz gráfica de usuario
Se añadió compatibilidad con la generación de código PHP a wxFormBuilder para facilitar la creación de aplicaciones y ayudar a las personas que no estén familiarizadas con la biblioteca a aprender a usarla rápidamente.
Ejemplo
Un ejemplo de marco mínimo que muestra cómo agregar una barra de menú con elementos de menú, botón, barra de estado y conexión de eventos de clic.
<?phpclase MainFrame extiende wxFrame { función onQuit () { $this -> Destroy (); }function onAbout () { $dlg = new wxMessageDialog ( $this , "¡Bienvenido a wxPHP!! \n Basado en wxWidgets 3.0.0 \n\n ¡ Este es un ejemplo mínimo de wxPHP!" , "Cuadro Acerca de..." , wxICON_INFORMATION );$dlg -> ShowModal (); }function __construct () { parent :: __construct ( null , null , "Aplicación wxPHP mínima" , wxDefaultPosition , new wxSize ( 350 , 260 ) );$mb = nuevo wxMenuBar ();$mn = new wxMenu (); $mn -> Append ( 2 , "E&xit" , "Salir de este programa" ); $mb -> Append ( $mn , "&Archivo" );$mn = new wxMenu (); $mn -> AppendCheckItem ( 4 , "&Acerca de..." , "Mostrar diálogo de información" ); $mb -> Append ( $mn , "&Ayuda" );$this -> SetMenuBar ( $mb );$scite = new wxStyledTextCtrl ( $this );$sbar = $this -> CreateStatusBar ( 2 ); $sbar -> SetStatusText ( "Bienvenido a wxPHP..." );$this- > Connect ( 2 , wxEVT_COMMAND_MENU_SELECTED , array ( $this , "onQuit" )); $this- > Connect ( 4 , wxEVT_COMMAND_MENU_SELECTED , array ( $this , "onAbout" )); } }$mf = new mainFrame (); $mf -> Show ();wxEntry ();?>Véase también
- PHP-GTK , enlaces de PHP a GTK+
- PHP-Qt, enlaces de PHP al kit de herramientas Qt
- WinBinder , enlaces nativos de ventana para PHP
- PHP Desktop , framework de interfaz gráfica de usuario (GUI) para escritorio PHP con motor HTML5 para Chrome/IE.
Referencias
- ^ "Cambios" en GitHub
- ^ "¿wxPHP?" . Consultado el 6 de junio de 2012 .
- ^ "wxPHP ha resucitado" . Consultado el 6 de junio de 2012 .
- ^ "Lista de correo de wxPHP SourceForge" . Consultado el 6 de junio de 2012 .
- ^ "wxPHP Progress" . Archivado del original el 6 de marzo de 2018. Consultado el 6 de junio de 2012 .
- ^ "Versión de trabajo" . Consultado el 7 de junio de 2012 .
- ^ "GCC-XML" . Consultado el 6 de junio de 2012 .
- ^ "Archivo de interfaz de autocompletado de código" . Consultado el 6 de junio de 2012 .
- ^ "PEG: Un generador de extensiones PHP" .
Enlaces externos
- wxPHP en GitHub
- Kits de herramientas de widgets
- Bibliotecas informáticas gratuitas
- Bibliotecas PHP
- WxWidgets
- Software que utiliza la licencia PHP.