{"id":26804,"date":"2024-04-02T11:50:56","date_gmt":"2024-04-02T09:50:56","guid":{"rendered":"https:\/\/www.codemotion.com\/magazine\/?p=26804"},"modified":"2024-04-02T11:50:58","modified_gmt":"2024-04-02T09:50:58","slug":"estas-listo-para-migrar-tus-aplicaciones-a-laravel-11","status":"publish","type":"post","link":"https:\/\/www.codemotion.com\/magazine\/es\/lenguajes-de-programacion\/estas-listo-para-migrar-tus-aplicaciones-a-laravel-11\/","title":{"rendered":"\u00bfEst\u00e1s listo para migrar tus aplicaciones a Laravel 11?"},"content":{"rendered":"\n<p>El software, como todo en la vida, evoluciona. Si no actualizas tu aplicaci\u00f3n, se quedar\u00e1 obsoleta y dejar\u00e1 de ser compatible con las \u00faltimas tecnolog\u00edas. Esto puede afectar a su rendimiento, seguridad y usabilidad.<\/p>\n\n\n\n<p>El mantenimiento de tu aplicaci\u00f3n web te permite:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Implementar nuevas funcionalidades<\/li>\n\n\n\n<li>Mejoras de rendimiento<\/li>\n\n\n\n<li>Adaptarte a nuevos dispositivos<\/li>\n\n\n\n<li>Ofrecer una mejor expericia de usuario<\/li>\n<\/ul>\n\n\n\n<p>Cuando compramos un coche hemos interiorizado, como algo normal, llevarlo a revisiones y cambiar, cada cierto tiempo, algunos de sus elementos: aceite, ruedas, amortiguadores, etc. Pero no siempre lo vemos con los mismos ojos cuando se trata de la web de nuestro negocio.<\/p>\n\n\n\n<p>El mantenimiento web muchas veces es entendido como un gasto adicional de nuestros desarrollos, pero es al contrario: es una inversi\u00f3n.<\/p>\n\n\n\n<p>Nuestra web debe ser nuestro medio principal de comunicarnos con el mundo, as\u00ed que requiere de una peque\u00f1a puesta a punto cada cierto tiempo.<\/p>\n\n\n\n<p>A veces, eso no es posible o bien el anterior proveedor del servicio no lo realiz\u00f3 con la diligencia adecuada, por lo que el desarrollo se puede haber quedado obsoleto.<\/p>\n\n\n\n<p>En estos casos, lo m\u00e1s importante es tener clara la tarea a realizar y elegir entre una actualizaci\u00f3n o una migraci\u00f3n a las versiones m\u00e1s recientes del software.<\/p>\n\n\n\n<p>En muchos casos, ambas opciones estar\u00e1n condicionadas por motivos externos, como m\u00f3dulos que no funcionan con determinadas versiones o la obligatoriedad de adaptarnos a nuevos est\u00e1ndares de seguridad.<\/p>\n\n\n\n<p>Esta tarea, se complica un poco m\u00e1s cuando se trata de grandes aplicaciones que utilizan un framework de desarrollo que se mantenga en constante evoluci\u00f3n.<\/p>\n\n\n\n<p>Los nuevos frameworks de desarrollo liberan versiones a un ritmo vertiginoso. Hubo un tiempo en el que hab\u00eda incluso varias versiones cada a\u00f1o.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-migrando-un-desarrollo-laravel\">Migrando un desarrollo Laravel<\/h2>\n\n\n\n<p>Desde la liberaci\u00f3n de la versi\u00f3n 8 de Laravel en septiembre de 2020 se estableci\u00f3 un calendario de versiones en el que se limitaban las versiones mayores a una por a\u00f1o, con una liberaci\u00f3n casi semanal de una versi\u00f3n menor.<\/p>\n\n\n\n<p>Esto, que podr\u00eda ser una buena noticia, tambi\u00e9n tiene su parte negativa. Necesitamos actualizar nuestro software en el primer trimestre de cada a\u00f1o para no quedarnos atr\u00e1s en cuanto a funcionalidades y sobre todo, vulnerabilidades de seguridad.<\/p>\n\n\n\n<p>Crear una aplicaci\u00f3n con un framework en el que prima la configuraci\u00f3n puede ser relativamente complejo, pero una vez que logramos adaptarnos y conocemos esos par\u00e1metros que cambian el comportamiento global, es un desarrollo muy fluido.<\/p>\n\n\n\n<p>Cuando se libera la nueva versi\u00f3n y queremos actualizar nuestro software, muchas veces nos encontramos con m\u00faltiples avisos y errores que nos llevan a desistir de esta transici\u00f3n, provocando que tengamos un software obsoleto.<\/p>\n\n\n\n<p>Para evitar caer en la tentaci\u00f3n, debemos migrar tan pronto como sea posible nuestras aplicaciones para que los cambios sean de menor calado y poder realizarlos con garant\u00edas.<\/p>\n\n\n\n<p>Y como el mundo del desarrollo no se parece en nada al mundo perfecto, vamos a ponernos en una situaci\u00f3n en la que tenemos que migrar una aplicaci\u00f3n y no es entre dos versiones consecutivas.<\/p>\n\n\n\n<p><a href=\"https:\/\/www.codemotion.com\/magazine\/es\/lenguajes-de-programacion\/porque-es-un-buen-momento-para-aprender-laravel\/\" target=\"_blank\" aria-label=\"Art\u00edculo recomendado: por qu\u00e9 es un buen momento para aprender Laravel (opens in a new tab)\" rel=\"noreferrer noopener\" class=\"ek-link\"><em><strong>Art\u00edculo recomendado: por qu\u00e9 es un buen momento para aprender Laravel<\/strong><\/em><\/a><\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-manos-a-la-obra\">Manos a la obra<\/h2>\n\n\n\n<p>Vamos a migrar una <em>vieja<\/em> aplicaci\u00f3n que lleva un tiempo sin mantenimiento, algo m\u00e1s de un a\u00f1o. Pero en esos meses, hay un salto grande de versiones, concretamente desde la 9&nbsp;a la 11.<\/p>\n\n\n\n<p>Partimos de nuestra aplicaci\u00f3n en la versi\u00f3n 9. Hacemos una copia y empezamos a migrar seg\u00fan nos indica la l\u00f3gica de <strong>composer <\/strong>y <strong>php<\/strong>: cambiamos la versi\u00f3n de laravel\/framework a la versi\u00f3n 11 y ejecutamos la actualizaci\u00f3n de paqueter\u00eda con <strong>composer<\/strong><\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">composer update<\/code><\/span><\/pre>\n\n\n<p>Y aqu\u00ed empieza una lista interminable de errores. <\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-1\" data-shcb-language-name=\"PHP\" data-shcb-language-slug=\"php\"><span><code class=\"hljs language-php\">Loading composer repositories with package information\nUpdating dependencies\nYour requirements could not be resolved to an installable set of packages.\n\u00a0 Problem <span class=\"hljs-number\">1<\/span>\n\u00a0\u00a0\u00a0 - Conclusion: don<span class=\"hljs-string\">'t install laravel\/framework v11.0.0 (conflict analysis result)\n\u00a0\u00a0\u00a0 - Conclusion: don'<\/span>t install laravel\/framework v11<span class=\"hljs-number\">.0<\/span><span class=\"hljs-number\">.1<\/span> (conflict analysis result)\n\u00a0\u00a0\u00a0 - Conclusion: don<span class=\"hljs-string\">'t install laravel\/framework v11.0.2 (conflict analysis result)\n\u00a0\u00a0\u00a0 - Conclusion: don'<\/span>t install laravel\/framework v11<span class=\"hljs-number\">.0<\/span><span class=\"hljs-number\">.3<\/span> (conflict analysis result)\n\u00a0\u00a0\u00a0 - Conclusion: don<span class=\"hljs-string\">'t install laravel\/framework v11.0.4 (conflict analysis result)\n\u00a0\u00a0\u00a0 - Conclusion: don'<\/span>t install laravel\/framework v11<span class=\"hljs-number\">.0<\/span><span class=\"hljs-number\">.5<\/span> (conflict analysis result)\n\u00a0\u00a0\u00a0 - Conclusion: don<span class=\"hljs-string\">'t install laravel\/framework v11.0.6 (conflict analysis result)\n\u00a0\u00a0\u00a0 - Conclusion: don'<\/span>t install laravel\/framework v11<span class=\"hljs-number\">.0<\/span><span class=\"hljs-number\">.7<\/span> (conflict analysis result)\n\u00a0\u00a0\u00a0 - Conclusion: don<span class=\"hljs-string\">'t install laravel\/framework v11.0.8 (conflict analysis result)\n\u00a0\u00a0\u00a0 - Conclusion: don'<\/span>t install laravel\/framework v11<span class=\"hljs-number\">.1<\/span><span class=\"hljs-number\">.0<\/span> (conflict analysis result)\n    - spatie\/laravel-ignition&#91;<span class=\"hljs-number\">1.5<\/span><span class=\"hljs-number\">.0<\/span>, ..., v1.x-dev] <span class=\"hljs-keyword\">require<\/span> illuminate\/support ^<span class=\"hljs-number\">8.77<\/span>|^<span class=\"hljs-number\">9.27<\/span> -&gt; satisfiable by illuminate\/support&#91;v8<span class=\"hljs-number\">.77<\/span><span class=\"hljs-number\">.0<\/span>, ..., <span class=\"hljs-number\">8.<\/span>x-dev, v9<span class=\"hljs-number\">.27<\/span><span class=\"hljs-number\">.0<\/span>, ..., <span class=\"hljs-number\">9.<\/span>x-dev].\n    - spatie\/laravel-ignition&#91;<span class=\"hljs-number\">1.0<\/span><span class=\"hljs-number\">.0<\/span>, ..., <span class=\"hljs-number\">1.4<\/span><span class=\"hljs-number\">.1<\/span>] <span class=\"hljs-keyword\">require<\/span> illuminate\/support ^<span class=\"hljs-number\">8.77<\/span>|^<span class=\"hljs-number\">9.0<\/span> -&gt; satisfiable by illuminate\/support&#91;v8<span class=\"hljs-number\">.77<\/span><span class=\"hljs-number\">.0<\/span>, ..., <span class=\"hljs-number\">8.<\/span>x-dev, v9<span class=\"hljs-number\">.0<\/span><span class=\"hljs-number\">.0<\/span>-beta<span class=\"hljs-number\">.1<\/span>, ..., <span class=\"hljs-number\">9.<\/span>x-dev].\n    - Only one of these can be installed: illuminate\/support&#91;v6<span class=\"hljs-number\">.0<\/span><span class=\"hljs-number\">.0<\/span>, ..., <span class=\"hljs-number\">6.<\/span>x-dev, v7<span class=\"hljs-number\">.0<\/span><span class=\"hljs-number\">.0<\/span>, ..., <span class=\"hljs-number\">7.<\/span>x-dev, v8<span class=\"hljs-number\">.0<\/span><span class=\"hljs-number\">.0<\/span>, ..., <span class=\"hljs-number\">8.<\/span>x-dev, v9<span class=\"hljs-number\">.0<\/span><span class=\"hljs-number\">.0<\/span>-beta<span class=\"hljs-number\">.1<\/span>, ..., <span class=\"hljs-number\">9.<\/span>x-dev, v10<span class=\"hljs-number\">.0<\/span><span class=\"hljs-number\">.0<\/span>, ..., <span class=\"hljs-number\">10.<\/span>x-dev, v11<span class=\"hljs-number\">.0<\/span><span class=\"hljs-number\">.0<\/span>, ..., <span class=\"hljs-number\">11.<\/span>x-dev], laravel\/framework&#91;v11<span class=\"hljs-number\">.0<\/span><span class=\"hljs-number\">.0<\/span>, ..., <span class=\"hljs-number\">11.<\/span>x-dev]. laravel\/framework replaces illuminate\/support <span class=\"hljs-keyword\">and<\/span> thus cannot coexist with it.\n    - Root composer.json requires laravel\/framework ^<span class=\"hljs-number\">11<\/span> -&gt; satisfiable by laravel\/framework&#91;v11<span class=\"hljs-number\">.0<\/span><span class=\"hljs-number\">.0<\/span>, ..., <span class=\"hljs-number\">11.<\/span>x-dev].\n    - Root composer.json requires spatie\/laravel-ignition ^<span class=\"hljs-number\">1.0<\/span> -&gt; satisfiable by spatie\/laravel-ignition&#91;<span class=\"hljs-number\">1.0<\/span><span class=\"hljs-number\">.0<\/span>, ..., v1.x-dev].\n\n<span class=\"hljs-keyword\">Use<\/span> <span class=\"hljs-title\">the<\/span> <span class=\"hljs-title\">option<\/span> --<span class=\"hljs-title\">with<\/span>-<span class=\"hljs-title\">all<\/span>-<span class=\"hljs-title\">dependencies<\/span> (-<span class=\"hljs-title\">W<\/span>) <span class=\"hljs-title\">to<\/span> <span class=\"hljs-title\">allow<\/span> <span class=\"hljs-title\">upgrades<\/span>, <span class=\"hljs-title\">downgrades<\/span> <span class=\"hljs-title\">and<\/span> <span class=\"hljs-title\">removals<\/span> <span class=\"hljs-title\">for<\/span> <span class=\"hljs-title\">packages<\/span> <span class=\"hljs-title\">currently<\/span> <span class=\"hljs-title\">locked<\/span> <span class=\"hljs-title\">to<\/span> <span class=\"hljs-title\">specific<\/span> <span class=\"hljs-title\">versions<\/span>.<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-1\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">PHP<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">php<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p>Normalmente junto con una versi\u00f3n de framework, tambi\u00e9n se necesita la actualizaci\u00f3n de m\u00e1s paquetes. Y eso es lo que nos est\u00e1n trasladando los mensajes anteriores.<\/p>\n\n\n\n<p>Por suerte, al final, composer no da una pista<\/p>\n\n\n\n<p>Siguiendo el consejo, volvemos a intentar realizar la misma acci\u00f3n con el modificador<strong> &#8211;with-all-dependencies<\/strong><\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-2\" data-shcb-language-name=\"JavaScript\" data-shcb-language-slug=\"javascript\"><span><code class=\"hljs language-javascript\">composer update --<span class=\"hljs-keyword\">with<\/span>-all-dependencies<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-2\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">JavaScript<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">javascript<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p>Y mismo resultado.<\/p>\n\n\n\n<p>En unos casos ser\u00e1n funcionalidades que est\u00e1n ah\u00ed disponibles y que no utilizamos, por lo que podr\u00edamos eliminarlos. Pero en la mayor parte de las aplicaciones de cierta complejidad resolver\u00e1n tareas imprescindibles para el correcto funcionamiento de nuestra aplicaci\u00f3n, por lo que eliminar no es una opci\u00f3n.<\/p>\n\n\n\n<p>En la aplicaci\u00f3n que estamos migrando hay un problema con las versiones de ignition, un paquete que utilizamos principalmente para depuraci\u00f3n de errores. Podr\u00edamos probar a eliminarlo, pero har\u00eda m\u00e1s complejo nuestro mantenimiento.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-pasos-para-realizar-la-migracion\">Pasos para realizar la migraci\u00f3n<\/h2>\n\n\n\n<p>Nuestra idea inicial nos puede llevar a pensar que lo m\u00e1s r\u00e1pido es hacer una migraci\u00f3n completa a la \u00faltima versi\u00f3n y posteriormente corregir los fallos que surjan.<\/p>\n\n\n\n<p>En este caso, ser\u00eda un gran error, puesto que nos meter\u00edamos en una mara\u00f1a de dependencias y modificaciones cuando se trate de un salto grande entre versiones, as\u00ed que iremos paso a paso.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-de-version-9-a-version-10\">De versi\u00f3n 9 a versi\u00f3n 10<\/h3>\n\n\n\n<p>Lo primero que tenemos que hacer ver las necesidades para migrar a la siguiente versi\u00f3n mayor de nuestro c\u00f3digo, en nuestro caso, la 10.<\/p>\n\n\n\n<p>Dentro de la documentaci\u00f3n que ofrece Laravel en su p\u00e1gina oficial, tenemos un apartado para la actualizaci\u00f3n a cada versi\u00f3n mayor<\/p>\n\n\n\n<p><a href=\"https:\/\/laravel.com\/docs\/10.x\/upgrade\" target=\"_blank\" aria-label=\" (opens in a new tab)\" rel=\"noreferrer noopener\" class=\"ek-link\">https:\/\/laravel.com\/docs\/10.x\/upgrade<\/a><\/p>\n\n\n\n<p>En ese documento nos indican una serie de versiones que debemos modificar en nuestra paqueter\u00eda dentro del fichero <strong>composer.json<\/strong><\/p>\n\n\n\n<p>Adicionalmente, nos pide un cambio en la clave <em>\u201cminimum-stability\u201d<\/em> al valor <em>&#8220;stable&#8221;<\/em>. Esta clave se encuentra casi al final del fichero y sirve para indicar el tipo de paqueter\u00eda que admitimos. Como nuestro objetivo es llevarla a una versi\u00f3n superior, debemos utilizar las versiones estables de cada paquete, que son las que se trasladar\u00e1n a la siguiente versi\u00f3n del framework.<\/p>\n\n\n\n<p>Normalmente, este cambio lo habremos realizado cuando llevamos nuestra aplicaci\u00f3n a producci\u00f3n la primera vez, pero por si acaso partimos de una rama que no tiene la configuraci\u00f3n de despliegue, es mejor revisarlo.<\/p>\n\n\n\n<p>Y ahora s\u00ed, ejecutamos<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-3\" data-shcb-language-name=\"JavaScript\" data-shcb-language-slug=\"javascript\"><span><code class=\"hljs language-javascript\">composer update --<span class=\"hljs-keyword\">with<\/span>-all-dependencies<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-3\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">JavaScript<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">javascript<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p>Esperamos unos segundos, en los que ya no aparecen mensajes de alerta. Y listo!<\/p>\n\n\n\n<p>Ya tenemos la mitad del camino, ahora solamente hay que repetir con la migraci\u00f3n de versi\u00f3n 10 a la 11<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-de-version-10-a-version-11\">De versi\u00f3n 10 a versi\u00f3n 11<\/h3>\n\n\n\n<p>En nuestro caso, si lanzamos la actualizaci\u00f3n de paquetes con <strong>composer<\/strong> vuelve a presentar los errores del principio porque utilizamos <strong>laravel-sanctum<\/strong>, que es un paquete que ha tenido un cambio importante en su gesti\u00f3n y por ello tiene un apartado espec\u00edfico en la gu\u00eda de migraci\u00f3n.<\/p>\n\n\n\n<p><a href=\"https:\/\/laravel.com\/docs\/11.x\/upgrade#sanctum\">https:\/\/laravel.com\/docs\/11.x\/upgrade#sanctum<\/a><\/p>\n\n\n\n<p>En el caso del paquete Sanctum, debemos realizar unos cuantos pasos adicionales.<\/p>\n\n\n\n<p>Este paquete proporciona una forma simple de autenticar determinadas aplicaciones (principalmente las de una sola p\u00e1gina) y para securizar nuestras API&#8217;s. <\/p>\n\n\n\n<p>En la versi\u00f3n 11 de Laravel, Sanctum se integra con el sistema de autenticaci\u00f3n nativo por lo que cambia su configuraci\u00f3n.<\/p>\n\n\n\n<p>Siguiendo las indicaciones del documentoPublicamos el paquete seg\u00fan nos indica<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">php artisan vendor:publish --tag=sanctum-migrations<\/code><\/span><\/pre>\n\n\n<p>Y vamos a la configuraci\u00f3n de la clave middleware, modificando los valores de las dos entradas existentes y a\u00f1adiendo la nueva entrada para la validaci\u00f3n del token csrf<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-4\" data-shcb-language-name=\"PHP\" data-shcb-language-slug=\"php\"><span><code class=\"hljs language-php\"><span class=\"hljs-string\">'middleware'<\/span> =&gt; &#91;\n\u00a0 \u00a0 <span class=\"hljs-string\">'authenticate_session'<\/span> =&gt; Laravel\\Sanctum\\Http\\Middleware\\AuthenticateSession::class,\n\u00a0 \u00a0 <span class=\"hljs-string\">'encrypt_cookies'<\/span> =&gt; Illuminate\\Cookie\\Middleware\\EncryptCookies::class,\n\u00a0 \u00a0 <span class=\"hljs-string\">'validate_csrf_token'<\/span> =&gt; Illuminate\\Foundation\\Http\\Middleware\\ValidateCsrfToken::class,\n],<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-4\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">PHP<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">php<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p>En nuestro caso, no utilizamos ninguno de los restantes paquetes que tienen un cambio en su comportamiento que obliga a cambiar la configuraci\u00f3n, por lo que ignoramos el resto de indicaciones<\/p>\n\n\n\n<p>Pero si tuvi\u00e9ramos alg\u00fan paquete m\u00e1s en la misma situaci\u00f3n que Sanctum, seguir\u00edamos los mismos pasos.<\/p>\n\n\n\n<p>Y una vez hechos los cambios de versi\u00f3n que nos indica y ahora s\u00ed, se actualiza toda la paqueter\u00eda.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-a-probar\">A probar<\/h2>\n\n\n\n<p>Tras terminar la actualizaci\u00f3n de la paqueter\u00eda, no deber\u00edamos tener ning\u00fan fallo en nuestra aplicaci\u00f3n, salvo que hayamos tenido un errores o warning durante la actualizaci\u00f3n. No obstante, no est\u00e1 de m\u00e1s realizar unas peque\u00f1as pruebas de usuario.<\/p>\n\n\n\n<p>Salvo que tengas una aplicaci\u00f3n muy simple o unas pruebas automatizadas muy b\u00e1sicas, tus <em>testsuites <\/em>tendr\u00e1n algunos errores (menores), que te impedir\u00e1n lanzarlas directamente.<\/p>\n\n\n\n<p>As\u00ed que mi recomendaci\u00f3n es realizar un peque\u00f1o repaso manual (a la vieja usanza) y tras verificar que las principales funcionalidades de bases de datos, comunicaciones, permisos, almacenamiento, etc., se ejecutan sin problemas, modificamos las pruebas automatizadas que sean necesarias y validamos que todo est\u00e1 en orden.<\/p>\n\n\n\n<p><\/p>\n\n\n\n<p><\/p>\n","protected":false},"excerpt":{"rendered":"<p>El software, como todo en la vida, evoluciona. Si no actualizas tu aplicaci\u00f3n, se quedar\u00e1 obsoleta y dejar\u00e1 de ser compatible con las \u00faltimas tecnolog\u00edas. Esto puede afectar a su rendimiento, seguridad y usabilidad. El mantenimiento de tu aplicaci\u00f3n web te permite: Cuando compramos un coche hemos interiorizado, como algo normal, llevarlo a revisiones y&#8230; <a class=\"more-link\" href=\"https:\/\/www.codemotion.com\/magazine\/es\/lenguajes-de-programacion\/estas-listo-para-migrar-tus-aplicaciones-a-laravel-11\/\">Read more<\/a><\/p>\n","protected":false},"author":249,"featured_media":26835,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_editorskit_title_hidden":false,"_editorskit_reading_time":0,"_editorskit_is_block_options_detached":false,"_editorskit_block_options_position":"{}","_uag_custom_page_level_css":"","_genesis_hide_title":false,"_genesis_hide_breadcrumbs":false,"_genesis_hide_singular_image":false,"_genesis_hide_footer_widgets":false,"_genesis_custom_body_class":"","_genesis_custom_post_class":"","_genesis_layout":"","footnotes":""},"categories":[10648],"tags":[11880,11875],"collections":[11932,11860],"class_list":{"0":"post-26804","1":"post","2":"type-post","3":"status-publish","4":"format-standard","5":"has-post-thumbnail","7":"category-lenguajes-de-programacion","8":"tag-laravel-es","9":"tag-php-es","10":"collections-laravel","11":"collections-php","12":"entry"},"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v26.9 (Yoast SEO v26.9) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>\u00bfEst\u00e1s listo para migrar tus aplicaciones a Laravel 11? - Codemotion Magazine<\/title>\n<meta name=\"description\" content=\"El ritmo fren\u00e9tico de actualizaciones en frameworks como Laravel puede llegar a ser un desaf\u00edo \u00bfte lanzas a la aventura de migrar a la \u00faltima versi\u00f3n?\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.codemotion.com\/magazine\/es\/lenguajes-de-programacion\/estas-listo-para-migrar-tus-aplicaciones-a-laravel-11\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"\u00bfEst\u00e1s listo para migrar tus aplicaciones a Laravel 11?\" \/>\n<meta property=\"og:description\" content=\"El ritmo fren\u00e9tico de actualizaciones en frameworks como Laravel puede llegar a ser un desaf\u00edo \u00bfte lanzas a la aventura de migrar a la \u00faltima versi\u00f3n?\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.codemotion.com\/magazine\/es\/lenguajes-de-programacion\/estas-listo-para-migrar-tus-aplicaciones-a-laravel-11\/\" \/>\n<meta property=\"og:site_name\" content=\"Codemotion Magazine\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/Codemotion.Italy\/\" \/>\n<meta property=\"article:published_time\" content=\"2024-04-02T09:50:56+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2024-04-02T09:50:58+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2024\/04\/migrarlaravel.jpeg\" \/>\n\t<meta property=\"og:image:width\" content=\"1024\" \/>\n\t<meta property=\"og:image:height\" content=\"835\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"David Martinez\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@CodemotionIT\" \/>\n<meta name=\"twitter:site\" content=\"@CodemotionIT\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"David Martinez\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"6 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.codemotion.com\/magazine\/es\/lenguajes-de-programacion\/estas-listo-para-migrar-tus-aplicaciones-a-laravel-11\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.codemotion.com\/magazine\/es\/lenguajes-de-programacion\/estas-listo-para-migrar-tus-aplicaciones-a-laravel-11\/\"},\"author\":{\"name\":\"David Martinez\",\"@id\":\"https:\/\/www.codemotion.com\/magazine\/#\/schema\/person\/29b244cd009ab9146d634ceae52bdab2\"},\"headline\":\"\u00bfEst\u00e1s listo para migrar tus aplicaciones a Laravel 11?\",\"datePublished\":\"2024-04-02T09:50:56+00:00\",\"dateModified\":\"2024-04-02T09:50:58+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.codemotion.com\/magazine\/es\/lenguajes-de-programacion\/estas-listo-para-migrar-tus-aplicaciones-a-laravel-11\/\"},\"wordCount\":1450,\"publisher\":{\"@id\":\"https:\/\/www.codemotion.com\/magazine\/#organization\"},\"image\":{\"@id\":\"https:\/\/www.codemotion.com\/magazine\/es\/lenguajes-de-programacion\/estas-listo-para-migrar-tus-aplicaciones-a-laravel-11\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2024\/04\/migrarlaravel.jpeg\",\"keywords\":[\"Laravel\",\"PHP\"],\"articleSection\":[\"Lenguajes de programaci\u00f3n\"],\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.codemotion.com\/magazine\/es\/lenguajes-de-programacion\/estas-listo-para-migrar-tus-aplicaciones-a-laravel-11\/\",\"url\":\"https:\/\/www.codemotion.com\/magazine\/es\/lenguajes-de-programacion\/estas-listo-para-migrar-tus-aplicaciones-a-laravel-11\/\",\"name\":\"\u00bfEst\u00e1s listo para migrar tus aplicaciones a Laravel 11? - Codemotion Magazine\",\"isPartOf\":{\"@id\":\"https:\/\/www.codemotion.com\/magazine\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.codemotion.com\/magazine\/es\/lenguajes-de-programacion\/estas-listo-para-migrar-tus-aplicaciones-a-laravel-11\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.codemotion.com\/magazine\/es\/lenguajes-de-programacion\/estas-listo-para-migrar-tus-aplicaciones-a-laravel-11\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2024\/04\/migrarlaravel.jpeg\",\"datePublished\":\"2024-04-02T09:50:56+00:00\",\"dateModified\":\"2024-04-02T09:50:58+00:00\",\"description\":\"El ritmo fren\u00e9tico de actualizaciones en frameworks como Laravel puede llegar a ser un desaf\u00edo \u00bfte lanzas a la aventura de migrar a la \u00faltima versi\u00f3n?\",\"breadcrumb\":{\"@id\":\"https:\/\/www.codemotion.com\/magazine\/es\/lenguajes-de-programacion\/estas-listo-para-migrar-tus-aplicaciones-a-laravel-11\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.codemotion.com\/magazine\/es\/lenguajes-de-programacion\/estas-listo-para-migrar-tus-aplicaciones-a-laravel-11\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.codemotion.com\/magazine\/es\/lenguajes-de-programacion\/estas-listo-para-migrar-tus-aplicaciones-a-laravel-11\/#primaryimage\",\"url\":\"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2024\/04\/migrarlaravel.jpeg\",\"contentUrl\":\"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2024\/04\/migrarlaravel.jpeg\",\"width\":1024,\"height\":835},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.codemotion.com\/magazine\/es\/lenguajes-de-programacion\/estas-listo-para-migrar-tus-aplicaciones-a-laravel-11\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.codemotion.com\/magazine\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Lenguajes de programaci\u00f3n\",\"item\":\"https:\/\/www.codemotion.com\/magazine\/es\/lenguajes-de-programacion\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"\u00bfEst\u00e1s listo para migrar tus aplicaciones a Laravel 11?\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.codemotion.com\/magazine\/#website\",\"url\":\"https:\/\/www.codemotion.com\/magazine\/\",\"name\":\"Codemotion Magazine\",\"description\":\"We code the future. Together\",\"publisher\":{\"@id\":\"https:\/\/www.codemotion.com\/magazine\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.codemotion.com\/magazine\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.codemotion.com\/magazine\/#organization\",\"name\":\"Codemotion\",\"url\":\"https:\/\/www.codemotion.com\/magazine\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.codemotion.com\/magazine\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2019\/11\/codemotionlogo.png\",\"contentUrl\":\"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2019\/11\/codemotionlogo.png\",\"width\":225,\"height\":225,\"caption\":\"Codemotion\"},\"image\":{\"@id\":\"https:\/\/www.codemotion.com\/magazine\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/Codemotion.Italy\/\",\"https:\/\/x.com\/CodemotionIT\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.codemotion.com\/magazine\/#\/schema\/person\/29b244cd009ab9146d634ceae52bdab2\",\"name\":\"David Martinez\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.codemotion.com\/magazine\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2024\/05\/lado_cuadrada-100x100.png\",\"contentUrl\":\"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2024\/05\/lado_cuadrada-100x100.png\",\"caption\":\"David Martinez\"},\"description\":\"Hi! I'm David. Sometimes a speaker, sometimes a listener, and always interested in web technologies. I specialize in complex projects involving anything related to PHP and Javascript. Lately, I've been diving deep into Laravel and API development (and the worst part is that I'm starting to like it).\",\"sameAs\":[\"https:\/\/martinezmartinez.com\",\"https:\/\/www.linkedin.com\/in\/dmartinezmartinez\/\"],\"url\":\"https:\/\/www.codemotion.com\/magazine\/author\/david-martinez\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"\u00bfEst\u00e1s listo para migrar tus aplicaciones a Laravel 11? - Codemotion Magazine","description":"El ritmo fren\u00e9tico de actualizaciones en frameworks como Laravel puede llegar a ser un desaf\u00edo \u00bfte lanzas a la aventura de migrar a la \u00faltima versi\u00f3n?","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.codemotion.com\/magazine\/es\/lenguajes-de-programacion\/estas-listo-para-migrar-tus-aplicaciones-a-laravel-11\/","og_locale":"en_US","og_type":"article","og_title":"\u00bfEst\u00e1s listo para migrar tus aplicaciones a Laravel 11?","og_description":"El ritmo fren\u00e9tico de actualizaciones en frameworks como Laravel puede llegar a ser un desaf\u00edo \u00bfte lanzas a la aventura de migrar a la \u00faltima versi\u00f3n?","og_url":"https:\/\/www.codemotion.com\/magazine\/es\/lenguajes-de-programacion\/estas-listo-para-migrar-tus-aplicaciones-a-laravel-11\/","og_site_name":"Codemotion Magazine","article_publisher":"https:\/\/www.facebook.com\/Codemotion.Italy\/","article_published_time":"2024-04-02T09:50:56+00:00","article_modified_time":"2024-04-02T09:50:58+00:00","og_image":[{"width":1024,"height":835,"url":"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2024\/04\/migrarlaravel.jpeg","type":"image\/jpeg"}],"author":"David Martinez","twitter_card":"summary_large_image","twitter_creator":"@CodemotionIT","twitter_site":"@CodemotionIT","twitter_misc":{"Written by":"David Martinez","Est. reading time":"6 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.codemotion.com\/magazine\/es\/lenguajes-de-programacion\/estas-listo-para-migrar-tus-aplicaciones-a-laravel-11\/#article","isPartOf":{"@id":"https:\/\/www.codemotion.com\/magazine\/es\/lenguajes-de-programacion\/estas-listo-para-migrar-tus-aplicaciones-a-laravel-11\/"},"author":{"name":"David Martinez","@id":"https:\/\/www.codemotion.com\/magazine\/#\/schema\/person\/29b244cd009ab9146d634ceae52bdab2"},"headline":"\u00bfEst\u00e1s listo para migrar tus aplicaciones a Laravel 11?","datePublished":"2024-04-02T09:50:56+00:00","dateModified":"2024-04-02T09:50:58+00:00","mainEntityOfPage":{"@id":"https:\/\/www.codemotion.com\/magazine\/es\/lenguajes-de-programacion\/estas-listo-para-migrar-tus-aplicaciones-a-laravel-11\/"},"wordCount":1450,"publisher":{"@id":"https:\/\/www.codemotion.com\/magazine\/#organization"},"image":{"@id":"https:\/\/www.codemotion.com\/magazine\/es\/lenguajes-de-programacion\/estas-listo-para-migrar-tus-aplicaciones-a-laravel-11\/#primaryimage"},"thumbnailUrl":"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2024\/04\/migrarlaravel.jpeg","keywords":["Laravel","PHP"],"articleSection":["Lenguajes de programaci\u00f3n"],"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/www.codemotion.com\/magazine\/es\/lenguajes-de-programacion\/estas-listo-para-migrar-tus-aplicaciones-a-laravel-11\/","url":"https:\/\/www.codemotion.com\/magazine\/es\/lenguajes-de-programacion\/estas-listo-para-migrar-tus-aplicaciones-a-laravel-11\/","name":"\u00bfEst\u00e1s listo para migrar tus aplicaciones a Laravel 11? - Codemotion Magazine","isPartOf":{"@id":"https:\/\/www.codemotion.com\/magazine\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.codemotion.com\/magazine\/es\/lenguajes-de-programacion\/estas-listo-para-migrar-tus-aplicaciones-a-laravel-11\/#primaryimage"},"image":{"@id":"https:\/\/www.codemotion.com\/magazine\/es\/lenguajes-de-programacion\/estas-listo-para-migrar-tus-aplicaciones-a-laravel-11\/#primaryimage"},"thumbnailUrl":"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2024\/04\/migrarlaravel.jpeg","datePublished":"2024-04-02T09:50:56+00:00","dateModified":"2024-04-02T09:50:58+00:00","description":"El ritmo fren\u00e9tico de actualizaciones en frameworks como Laravel puede llegar a ser un desaf\u00edo \u00bfte lanzas a la aventura de migrar a la \u00faltima versi\u00f3n?","breadcrumb":{"@id":"https:\/\/www.codemotion.com\/magazine\/es\/lenguajes-de-programacion\/estas-listo-para-migrar-tus-aplicaciones-a-laravel-11\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.codemotion.com\/magazine\/es\/lenguajes-de-programacion\/estas-listo-para-migrar-tus-aplicaciones-a-laravel-11\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.codemotion.com\/magazine\/es\/lenguajes-de-programacion\/estas-listo-para-migrar-tus-aplicaciones-a-laravel-11\/#primaryimage","url":"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2024\/04\/migrarlaravel.jpeg","contentUrl":"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2024\/04\/migrarlaravel.jpeg","width":1024,"height":835},{"@type":"BreadcrumbList","@id":"https:\/\/www.codemotion.com\/magazine\/es\/lenguajes-de-programacion\/estas-listo-para-migrar-tus-aplicaciones-a-laravel-11\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.codemotion.com\/magazine\/"},{"@type":"ListItem","position":2,"name":"Lenguajes de programaci\u00f3n","item":"https:\/\/www.codemotion.com\/magazine\/es\/lenguajes-de-programacion\/"},{"@type":"ListItem","position":3,"name":"\u00bfEst\u00e1s listo para migrar tus aplicaciones a Laravel 11?"}]},{"@type":"WebSite","@id":"https:\/\/www.codemotion.com\/magazine\/#website","url":"https:\/\/www.codemotion.com\/magazine\/","name":"Codemotion Magazine","description":"We code the future. Together","publisher":{"@id":"https:\/\/www.codemotion.com\/magazine\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.codemotion.com\/magazine\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/www.codemotion.com\/magazine\/#organization","name":"Codemotion","url":"https:\/\/www.codemotion.com\/magazine\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.codemotion.com\/magazine\/#\/schema\/logo\/image\/","url":"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2019\/11\/codemotionlogo.png","contentUrl":"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2019\/11\/codemotionlogo.png","width":225,"height":225,"caption":"Codemotion"},"image":{"@id":"https:\/\/www.codemotion.com\/magazine\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/Codemotion.Italy\/","https:\/\/x.com\/CodemotionIT"]},{"@type":"Person","@id":"https:\/\/www.codemotion.com\/magazine\/#\/schema\/person\/29b244cd009ab9146d634ceae52bdab2","name":"David Martinez","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.codemotion.com\/magazine\/#\/schema\/person\/image\/","url":"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2024\/05\/lado_cuadrada-100x100.png","contentUrl":"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2024\/05\/lado_cuadrada-100x100.png","caption":"David Martinez"},"description":"Hi! I'm David. Sometimes a speaker, sometimes a listener, and always interested in web technologies. I specialize in complex projects involving anything related to PHP and Javascript. Lately, I've been diving deep into Laravel and API development (and the worst part is that I'm starting to like it).","sameAs":["https:\/\/martinezmartinez.com","https:\/\/www.linkedin.com\/in\/dmartinezmartinez\/"],"url":"https:\/\/www.codemotion.com\/magazine\/author\/david-martinez\/"}]}},"featured_image_src":"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2024\/04\/migrarlaravel-600x400.jpeg","featured_image_src_square":"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2024\/04\/migrarlaravel-600x600.jpeg","author_info":{"display_name":"David Martinez","author_link":"https:\/\/www.codemotion.com\/magazine\/author\/david-martinez\/"},"uagb_featured_image_src":{"full":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2024\/04\/migrarlaravel.jpeg",1024,835,false],"thumbnail":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2024\/04\/migrarlaravel-150x150.jpeg",150,150,true],"medium":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2024\/04\/migrarlaravel-300x245.jpeg",300,245,true],"medium_large":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2024\/04\/migrarlaravel-768x626.jpeg",768,626,true],"large":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2024\/04\/migrarlaravel.jpeg",1024,835,false],"1536x1536":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2024\/04\/migrarlaravel.jpeg",1024,835,false],"2048x2048":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2024\/04\/migrarlaravel.jpeg",1024,835,false],"small-home-featured":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2024\/04\/migrarlaravel-100x100.jpeg",100,100,true],"sidebar-featured":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2024\/04\/migrarlaravel-180x128.jpeg",180,128,true],"genesis-singular-images":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2024\/04\/migrarlaravel-896x504.jpeg",896,504,true],"archive-featured":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2024\/04\/migrarlaravel-400x225.jpeg",400,225,true],"gb-block-post-grid-landscape":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2024\/04\/migrarlaravel-600x400.jpeg",600,400,true],"gb-block-post-grid-square":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2024\/04\/migrarlaravel-600x600.jpeg",600,600,true]},"uagb_author_info":{"display_name":"David Martinez","author_link":"https:\/\/www.codemotion.com\/magazine\/author\/david-martinez\/"},"uagb_comment_info":0,"uagb_excerpt":"El software, como todo en la vida, evoluciona. Si no actualizas tu aplicaci\u00f3n, se quedar\u00e1 obsoleta y dejar\u00e1 de ser compatible con las \u00faltimas tecnolog\u00edas. Esto puede afectar a su rendimiento, seguridad y usabilidad. El mantenimiento de tu aplicaci\u00f3n web te permite: Cuando compramos un coche hemos interiorizado, como algo normal, llevarlo a revisiones y&#8230;&hellip;","lang":"es","_links":{"self":[{"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/posts\/26804","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/users\/249"}],"replies":[{"embeddable":true,"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/comments?post=26804"}],"version-history":[{"count":2,"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/posts\/26804\/revisions"}],"predecessor-version":[{"id":26861,"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/posts\/26804\/revisions\/26861"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/media\/26835"}],"wp:attachment":[{"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/media?parent=26804"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/categories?post=26804"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/tags?post=26804"},{"taxonomy":"collections","embeddable":true,"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/collections?post=26804"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}