Hablemos de su proyecto

Categoría

PHP

41 artículos Página 2

PHP FFI: callbacks — parte 3

El CallbackDurante la preparación de este artículo, noté que muchos recursos en internet usan directamente el libc para sus ejemplos. Puedes encontrar fácilmente ejemplos bastante demostrativos y sencillos. Pero para hacer algo genial y original, pensé "vamos a encontrar algo para mostrar con este libc también". Después de todo… si solo es pasar una estructura como la mayoría de los ejemplos, no será útil. Y luego encontré una función en un foro donde la g...

PHP FFI: paso de parámetros — parte 2

¿Llamando directamente a la biblioteca de PHP?¿Qué tal si nos divertimos escribiendo un fragmento de código que es inútil? ¡Vamos! ¡Vamos! ¡Vamos!Está bien, de acuerdo. Propongo que hagamos algo inútil utilizando PHP para llamar a una biblioteca de C que usa el Zend Engine.De hecho, este párrafo no es tan inútil como parece. Su propósito es mostrarte un comportamiento particular 😊PHP-FFI tiene algunas limitaciones: no puedes pasar una variable de PHP directamente para recuperar su valor dinám...

PHP FFI: introducción — parte 1

IntroducciónDesde la versión 7.4 de PHP, finalmente tenemos acceso a funciones de interoperabilidad entre diferentes lenguajes y PHP: FFI o Interfaz de Función Externa.¿Qué es FFI? Es simplemente la capacidad de utilizar una biblioteca externa (.dll o .so) directamente en PHP, sin tener que crear una extensión de PHP. ¡Sí, con solo un script de PHP! Es, entre otras cosas, lo que ha hecho que Python sea tan famoso y le haya permitido tener tantas características.Lo grandioso de FFI es que un ...

Symfony 6 / Sonata 5 : Instalación de SonataClassification.

Hemos visto en artículos anteriores cómo inicializar un proyecto Symfony 6 + Sonata 5 con multimedia y usuarios en un admin seguro. Luego, analizamos cómo gestionar las localizaciones de usuarios.Ahora veremos cómo instalar y gestionar clasificaciones. Procedemos con la instalación de la última versión hasta la fecha. php8.1 composer.phar require sonata-project/classification-bundle:5.x-dev Al parecer, tenemos un error de configuración. Unrecognized option "media" under "sonata_clas...

Symfony 6 / Sonata 5: Vincular los locales y la zona horaria a las preferencias del usuario.

En un artículo anterior vimos cómo instalar Symfony 6 + Sonata Admin 5 con gestión de usuarios y medios. Continuaremos con esta instalación con la configuración de idiomas y zonas horarias. Instalaremos intlBundle que permite gestionar la visualización localizada. php8.1 composer.phar require sonata-project/intl-bundle Aprovechamos esta oportunidad para agregar un campo de zona horaria y localidad al usuario.Para hacer esto, extenderemos userBundle y agregaremos un campo en el admin. Ex...

Symfony 6 / Sonata 5: Inicializar un proyecto Symfony 6 + Sonata admin 5 + UserBundle + MediaBundle

Aquí están los comandos para inicializar un proyecto Symfony con un administrador seguro. Para ejecutar Symfony 6 necesitaremos instalar php8.0 o php8.1 Para php8.0 sudo apt-get install php8.0-cli libapache2-mod-php8.0 php8.0-common php8.0-opcache php8.0-igbinary php8.0-imagick php8.0-msgpack php8.0-readline php8.0-memcached php8.0-xml php8.0-mbstring php8.0-gd php8.0-mysql php8.0-curl php8.0-intl php8.0-memcache php8.0-memcached memcached libapache2-mod-php8.0 php8.0-zip php8.0-mysql ...

Symfony 4 / Sonata: Crear una segunda interfaz con la misma entidad

Aquí veremos cómo crear una segunda interfaz mientras la entidad ya está en uso en una interfaz CRUD.El problema con las interfaces generadas automáticamente es que utilizan el nombre de la entidad para construir las rutas.Si configuramos una segunda interfaz con una entidad que ya se está utilizando, terminaremos con la misma ruta que la primera. Para abordar este problema, utilizaremos estos dos parámetros en nuestra clase de administración para sobrescribir los valores predeterminados.Sup...

Symfony 4 / Sonata: gestionar una interfaz de administración multilingüe

Veremos cómo configurar una interfaz de administración multilingüe con un botón de selección de idioma (conmutador de idioma).Instalación de translationBundle composer require sonata-project/translation-bundle bin/console assets:install El conmutador de idioma requiere un filtro twig específico.De lo contrario, obtendrás un error como:Unknown "language_name" filter.Luego, necesitas instalar estos dos paquetes composer require twig/intl-extra composer require twig/extra-bundle bin/console cac...

Symfony 4 / Sonata : gestionar una interfaz de administración multiserver

Veremos cómo gestionar una interfaz de administración que se conecta a múltiples servidores.En nuestro ejemplo, hemos configurado un servidor MySQL predeterminado que gestiona nuestra interfaz de administración. Usuarios, medios, etc.Y hemos configurado un servidor PostgreSQL que contiene una tabla que deseamos gestionar.Podemos agregar tantos servidores como deseemos.Nuestro Servidor MySQLTradicionalmente hemos configurado una instancia de Symfony Sonata por defecto con una conexión clásica ...

Symfony 4 / Sonata: Usar campos JSON

Vamos a ver cómo explotar los tipos de campo Jsonb de PostgreSQL en una interfaz generada de Sonata.Comenzamos con el supuesto de que ya dominas los conceptos básicos de Symfony, Sonata y PostgreSQL.Primero, creemos una tabla simple en PostgreSQL que contendrá un campo Jsonb. CREATE SEQUENCE public.table1_id_seq; CREATE TABLE public.table1 ( id integer DEFAULT nextval('public.table1_id_seq'::regclass) NOT NULL, var1 character varying(250), var2 json...

Symfony 4 / Sonata: crear un tipo de campo de formulario personalizado

Vamos a ver cómo podemos crear un tipo de campo personalizado. En nuestro ejemplo, queremos un campo que tenga el mismo renderizado que un campo de tipo MoneyType pero en el cual podamos agregar cualquier sufijo, ya que el campo de dinero solo acepta monedas. Sin embargo, en nuestro proyecto queremos usar kilogramos, meses o incluso kilómetros. En resumen, una gama completa de posibles tipos de datos.Comenzamos creando nuestra clase de Tipo: <?php // src/Form/Type/NumberSuffixType.php na...

Symfony 4 / Sonata : Crear una interfaz de configuración.

Una de las necesidades recurrentes de un proyecto web es la necesidad de parámetros globales para su aplicación. Generalmente, estos se almacenan en un archivo yml y eso es todo lo que necesitas. Pero se complica cuando el cliente pide poder tener control sobre ellos.¿Darles acceso FTP/SSH para modificarlos? No, definitivamente no. Especialmente si se trata de delegar esta tarea a un becario.Necesitarás proporcionarles una interfaz de administración con un formulario para poder modificar est...