{"id":29,"date":"2014-08-16T07:56:22","date_gmt":"2014-08-16T07:56:22","guid":{"rendered":"http:\/\/luismaseda.com\/wp\/?p=29"},"modified":"2016-02-06T13:38:39","modified_gmt":"2016-02-06T11:38:39","slug":"buenas-maneras-de-escribir-codigo-php","status":"publish","type":"post","link":"https:\/\/luismaseda.com\/wp\/?p=29","title":{"rendered":"Buenas maneras de escribir c\u00f3digo PHP"},"content":{"rendered":"<h1>Buenas maneras de escribir c\u00f3digo php<\/h1>\n<p>Pues eso, que ya que estoy empezando he pensado que mejor empezar haciendo bien las cosas y no de cualquier manera. As\u00ed que me he puesto a buscar sitios donde hablen de este tema y voy a tratar de incluirlos en esta entrada.<\/p>\n<p>De entrada distinguir algunos conceptos:<\/p>\n<ul>\n<li>Modelo:\n<ul>\n<li>Todo el c\u00f3digo que tiene que ver con el acceso a base de datos. En el modelo mantendremos encapsulada la complejidad de nuestra base de datos y simplemente crearemos funciones para recibir, insertar, actualizar o borrar informaci\u00f3n de nuestras tablas. Al mantenerse todas las llamadas a la base de datos en un mismo c\u00f3digo, desde otras partes del programa podremos invocar las funciones que necesitemos del modelo y \u00e9ste se encargar\u00e1 de procesarlas. En el modelo nos podr\u00e1n preocupar cosas como el tipo de base de datos con la que trabajamos, o las tablas y sus relaciones, pero desde las otras partes del programa simplemente llamaremos a las funciones del modelo sin importarnos qu\u00e9 tiene que hace \u00e9ste para conseguir realizar las acciones invocadas.<\/li>\n<\/ul>\n<\/li>\n<li>Vista:\n<ul>\n<li>La vista codifica y mantiene la presentaci\u00f3n final de nuestra aplicaci\u00f3n de cara al usuario. Es decir, en la vista colocaremos todo el c\u00f3digo HTML, CSS, Javascript, etc. que se tiene que generar para producir la p\u00e1gina tal cual queremos que la vea el usuario. En la pr\u00e1ctica la vista no s\u00f3lo sirve para producir p\u00e1ginas web, sino tambi\u00e9n cualquier otra salida que queramos enviar al usuario, en formatos o lenguajes distintos, como pueden ser feeds RSS, archivos JSON, XML, etc.<\/li>\n<\/ul>\n<\/li>\n<li>Controlador:\n<ul>\n<li>El controlador podr\u00edamos decir que es la parte m\u00e1s importante, porque hace de enlace entre el modelo, la vista y cualquier otro recurso que se tenga que procesar en el servidor para generar la p\u00e1gina web. En resumen, en el controlador guardamos la l\u00f3gica de nuestras p\u00e1ginas y realizamos todas las acciones que sean necesarias para generarlas, ayudados del modelo o la vista.[stextbox id=\u00bbinfo\u00bb]\n<ul>\n<li><a title=\"C\u00f3mo escribir c\u00f3digo PHP claro y f\u00e1cil de mantener\" href=\"http:\/\/jacobo.tarrio.org\/es\/tech\/php_claro\" target=\"_blank\">C\u00f3mo escribir c\u00f3digo PHP claro y f\u00e1cil de mantener<\/a><\/li>\n<li><a title=\"Buenas practicas para programar en php\" href=\"http:\/\/formaciononline.eu\/buenas-practicas-para-programar-en-php\/\" target=\"_blank\">Buenas practicas para programar en php<\/a><\/li>\n<li><a title=\"Buenas practicas en la programacion\" href=\"http:\/\/unreal4u.com\/inverluz\/Buenas_practicas_en_la_programacion.pdf\" target=\"_blank\">Buenas practicas en la programacion (pdf)<\/a><\/li>\n<li><a title=\"Buenas prcticas de programaci\u00f3n en php (presentaci\u00f3n)\" href=\"http:\/\/es.slideshare.net\/jesus.castagnetto\/buenas-prcticas-de-programacin-en-php-presentation\" target=\"_blank\">Buenas prcticas de programaci\u00f3n en php (presentaci\u00f3n)<\/a><\/li>\n<li><a title=\"Las 10 mejores pr\u00e1cticas para php\" href=\"http:\/\/tednologia.com\/10-mejores-practicas-para-php\/\" target=\"_blank\">Las 10 mejores pr\u00e1cticas para php<\/a><\/li>\n<li><a title=\"Gu\u00eda de buenas pr\u00e1cticas para desarrolladores web\" href=\"http:\/\/es.slideshare.net\/minayaleon\/gua-de-buenas-prcticas-para-desarrolladores-web\" target=\"_blank\">Gu\u00eda de buenas pr\u00e1cticas para desarrolladores web<\/a><\/li>\n<\/ul>\n[\/stextbox]\n<p>Y por si fuera poco, tras leer mucho veo la posibilidad de utilizar un framework para desarrollar las p\u00e1ginas de php. He aqu\u00ed algunos enlaces interesantes a algunos que son definidos como los mas adecuados para aplicaciones sencillas y programadores que empiezan desde cero&#8230; o casi:<\/p>\n<h1>Codeigniter<\/h1>\n[stextbox id=\u00bbgrey\u00bb caption=\u00bbCodeigniter\u00bb collapsed=\u00bbtrue\u00bb]\n<ul>\n<li><a title=\"Codeigniter - Gu\u00eda del usuario\" href=\"http:\/\/escodeigniter.com\/guia_usuario\/\" target=\"_blank\">Codeigniter &#8211; Gu\u00eda del usuario<\/a><\/li>\n<li><a title=\"DesarrolloWeb - Manual de codeigniter\" href=\"http:\/\/www.desarrolloweb.com\/manuales\/manual-codeigniter.html\" target=\"_blank\">DesarrolloWeb &#8211; Manual de codeigniter<\/a><\/li>\n<li><a title=\"codigofacilito.com - Tutorial CodeIgniter\" href=\"http:\/\/codigofacilito.com\/cursos\/codeigniter\" target=\"_blank\">C\u00f3digo facilito &#8211; Codeigniter (You tube)<\/a><\/li>\n<li><a title=\"Manual de CodeIgniter\" href=\"http:\/\/fernando-gaitan.com.ar\/codeigniter-parte-1-introduccion-y-configuracion\/\" target=\"_blank\">Manual de CodeIgniter<\/a><\/li>\n<li>Tutorial Codeigniter\n<ul>\n<li><a title=\"Tutorial Codeigniter -1a parte - modelo mvc y primeros pasos\" href=\"http:\/\/www.adwe.es\/codigo\/tutorial-codeigniter-1o-parte-modelo-mvc-y-primeros-pasos\" target=\"_blank\">Tutorial Codeigniter &#8211; 1a parte &#8211; modelo mvc y primeros pasos<\/a><\/li>\n<li><a title=\"http:\/\/www.adwe.es\/codigo\/tutorial-codeigniter-2o-parte-clases-modelo-y-eliminar-index-php-de-las-url\" href=\"http:\/\/www.adwe.es\/codigo\/tutorial-codeigniter-2o-parte-clases-modelo-y-eliminar-index-php-de-las-url\" target=\"_blank\">TTutorial Codeigniter &#8211; 2a parte &#8211; clases modelo y eliminar index.php de las url<\/a><\/li>\n<li><a title=\"Tutorial-codeigniter-3o-parte-formularios\" href=\"http:\/\/www.adwe.es\/codigo\/tutorial-codeigniter-3o-parte-formularios\" target=\"_blank\">Tutorial Codeigniter &#8211; 3a parte &#8211; formularios<\/a><\/li>\n<li><a title=\"Tutorial-codeigniter-4o-parte-librerias-y-helpers\" href=\"http:\/\/www.adwe.es\/codigo\/tutorial-codeigniter-4o-parte-librerias-y-helpers\" target=\"_blank\">Tutorial Codeigniter &#8211; 4a parte &#8211; librerias y helpers<\/a><\/li>\n<li><a title=\"Guia del usuario\" href=\"http:\/\/www.etnassoft.com\/biblioteca\/codeigniter-guia-del-usuario-en-espanol-v-2-1-3\/\" target=\"_blank\">Guia del usuario<\/a><\/li>\n<\/ul>\n<\/li>\n<li><a title=\"www.tutorialesvirtuales.com\/p\/codeigniter\" href=\"http:\/\/www.tutorialesvirtuales.com\/p\/codeigniter.html\" target=\"_blank\">tutorialesvirtuales.com &#8211; Codeigniter<\/a><\/li>\n<li><a title=\"Uno de Piedra - Tutoriales de Programaci\u00f3n web\" href=\"http:\/\/uno-de-piera.com\/\">Uno de Piedra &#8211; Tutoriales de Programaci\u00f3n web<\/a><\/li>\n<\/ul>\n<ul>\n<li><a title=\"Cosas interesanes de CodeIgniter en espa\u00f1ol\" href=\"http:\/\/alexcytek.blogspot.com.es\/2012\/07\/pagina-web-con-codeigniter-usando-css-y.html\" target=\"_blank\">Pagina Web con CodeIgniter, usando CSS y HTML5<\/a><br \/>\n[\/stextbox]\n<h1>Laravel 4<\/h1>\n[stextbox id=\u00bbgrey\u00bb caption=\u00bbLaravel 4&#8243; collapsed=\u00bbtrue\u00bb]\n<ul>\n<li><a title=\"Laravel 4 desde cero\" href=\"http:\/\/codehero.co\/series\/laravel-4-desde-cero\/\" target=\"_blank\">Laravel 4 desde cero<\/a><\/li>\n<li><a title=\"laraveles.com - Foro Laravel\" href=\"http:\/\/laraveles.com\/foro\/index.php\" target=\"_blank\">laraveles.com &#8211; Foro Laravel<\/a><\/li>\n<li><a title=\"Laravel - documentaci\u00f3n\" href=\"http:\/\/laraveles.com\/docs\/4.1\/\" target=\"_blank\">Laravel &#8211; documentaci\u00f3n<\/a><\/li>\n<li><a title=\"Curso Intensivo de Laravel\" href=\"https:\/\/www.youtube.com\/watch?v=pOdWEoUTwD4&amp;list=PLEtcGQaT56chQN6n4byqRIMYnTHpgkG6m\" target=\"_blank\">Curso Intensivo de Laravel<\/a>\n<ul>\n<li><a title=\"Curso Intensivo Laravel - 01 - Qu\u00e9 es Laravel\" href=\"https:\/\/www.youtube.com\/watch?v=pOdWEoUTwD4\" target=\"_blank\">Curso Intensivo Laravel &#8211; 01 &#8211; Qu\u00e9 es Laravel<\/a><\/li>\n<li><a title=\"Curso Intensivo Laravel - 02 - Instalaci\u00f3n y configuraci\u00f3n del entorno de trabajo\" href=\"https:\/\/www.youtube.com\/watch?v=kyVfQeoFKcc\" target=\"_blank\">Curso Intensivo Laravel &#8211; 02 &#8211; Instalaci\u00f3n y configuraci\u00f3n del entorno de trabajo.<\/a><\/li>\n<li><a title=\"Curso Intensivo Laravel - 03 - Crear tablas usando migraciones\" href=\"https:\/\/www.youtube.com\/watch?v=7n0MUM3upmg\" target=\"_blank\">Curso Intensivo Laravel &#8211; 03 &#8211; Crear tablas usando migraciones<\/a><\/li>\n<li><a title=\"Curso Intensivo Laravel - 04 - Crear el modelo con Eloquent\" href=\"https:\/\/www.youtube.com\/watch?v=orcDlYaApIg\" target=\"_blank\">Curso Intensivo Laravel &#8211; 04 &#8211; Crear el modelo con Eloquent<\/a><\/li>\n<li><a title=\"Curso Intensivo Laravel - 05 - Uso de Routing\" href=\"https:\/\/www.youtube.com\/watch?v=cGKW6tIB420\" target=\"_blank\">Curso Intensivo Laravel &#8211; 05 &#8211; Uso de Routing<\/a><\/li>\n<li><a title=\"Curso Intensivo Laravel - 06 - Crear el Controller User\" href=\"https:\/\/www.youtube.com\/watch?v=uEO0NplO3bs\" target=\"_blank\">Curso Intensivo Laravel &#8211; 06 &#8211; Crear el Controller User<\/a><\/li>\n<li><a title=\"Curso Intensivo Laravel - 07 - Crear la View Index\" href=\"https:\/\/www.youtube.com\/watch?v=ynRygt1dhpk\" target=\"_blank\">Curso Intensivo Laravel &#8211; 07 &#8211; Crear la View Index<\/a><\/li>\n<li><a title=\"Curso Intensivo Laravel - 08 - Pasar datos de un controlador a una vista\" href=\"https:\/\/www.youtube.com\/watch?v=0-izPDobt8E\" target=\"_blank\">Curso Intensivo Laravel &#8211; 08 &#8211; Pasar datos de un controlador a una vista<\/a><\/li>\n<li><a title=\"Curso Intensivo Laravel - 09 - Controladores RESTful\" href=\"https:\/\/www.youtube.com\/watch?v=4b32kFTQMVs\" target=\"_blank\">Curso Intensivo Laravel &#8211; 09 &#8211; Controladores RESTful<\/a><\/li>\n<li><a title=\"Curso Intensivo Laravel - 10 - Aplicaci\u00f3n Administraci\u00f3n Usuarios Completa\" href=\"https:\/\/www.youtube.com\/watch?v=5IOz0Zl5jwE\" target=\"_blank\">Curso Intensivo Laravel &#8211; 10 &#8211; Aplicaci\u00f3n Administraci\u00f3n Usuarios Completa<\/a><\/li>\n<li><a title=\"Curso Intensivo Laravel - 11 - Eloquent el ORM de Laravel\" href=\"https:\/\/www.youtube.com\/watch?v=fJmSZVQIbXs\" target=\"_blank\">Curso Intensivo Laravel &#8211; 11 &#8211; Eloquent el ORM de Laravel<\/a><\/li>\n<li><a title=\"Curso Intensivo Laravel - 12 - Autentificaci\u00f3n\" href=\"https:\/\/www.youtube.com\/watch?v=gpE8FKH8u74\" target=\"_blank\">Curso Intensivo Laravel &#8211; 12 &#8211; Autentificaci\u00f3n<\/a><\/li>\n<li><a title=\"Curso Intensivo Laravel - 13 - Uso de Filtros\" href=\"https:\/\/www.youtube.com\/watch?v=5Wi3NJil-ME\" target=\"_blank\">Curso Intensivo Laravel &#8211; 13 &#8211; Uso de Filtros<\/a><\/li>\n<li><a title=\"Curso Intensivo Laravel - 14 - Validaciones, paquetes y enlaces\" href=\"https:\/\/www.youtube.com\/watch?v=ukCKbO4Ehvw\" target=\"_blank\">Curso Intensivo Laravel &#8211; 14 &#8211; Validaciones, paquetes y enlaces<\/a><\/li>\n<li><a title=\"Curso Laravel - 15 - Laravel 4. Crear Completo sistema de autentificaci\u00f3n\" href=\"https:\/\/www.youtube.com\/watch?v=Zu2aOzeyOzI\" target=\"_blank\">Curso Laravel &#8211; 15 &#8211; Laravel 4. Crear Completo sistema de autentificaci\u00f3n<\/a><\/li>\n<\/ul>\n<\/li>\n<li>Curso Laravel 4\n<ul>\n<li><a title=\"Curso Laravel 4 - 1 - Instalaci\u00f3n de Laravel 4 en Windows\" href=\"https:\/\/www.youtube.com\/watch?v=57u3kzRdBIw\" target=\"_blank\">Curso Laravel 4 &#8211; 1 &#8211; Instalaci\u00f3n de Laravel 4 en Windows<\/a><\/li>\n<li><a title=\"Curso Laravel 4 - 2 - Organizacion de archivos y carpetas\" href=\"https:\/\/www.youtube.com\/watch?v=_P24y_zlrhY\" target=\"_blank\">Curso Laravel 4 &#8211; 2 &#8211; Organizacion de archivos y carpetas<\/a><\/li>\n<li><a title=\"Curso Laravel 4 - 3 - Laravel y Sublime Text 2\" href=\"https:\/\/www.youtube.com\/watch?v=YefRJYYpgnE\" target=\"_blank\">Curso Laravel 4 &#8211; 3 &#8211; Laravel y Sublime Text 2<\/a><\/li>\n<li><a title=\"Curso Laravel 4 - 4 - Rutas y filtros\" href=\"https:\/\/www.youtube.com\/watch?v=IPykxgb-1-g\" target=\"_blank\">Curso Laravel 4 &#8211; 4 &#8211; Rutas y filtros<\/a><\/li>\n<li><a title=\"Curso Laravel 4 - 5 - Controladores y Rutas\" href=\"https:\/\/www.youtube.com\/watch?v=wA9FB9i7_Bs\" target=\"_blank\">Curso Laravel 4 &#8211; 5 &#8211; Controladores y Rutas<\/a><\/li>\n<li><a title=\"Curso Laravel 4 - 6 - Vistas y Plantillas\" href=\"https:\/\/www.youtube.com\/watch?v=A7z3dpBtR_I\" target=\"_blank\">Curso Laravel 4 &#8211; 6 &#8211; Vistas y Plantillas<\/a><\/li>\n<li><a title=\"Curso Laravel 4 - 7 - Modelo: Mostrando e insertando datos de la base de datos\" href=\"https:\/\/www.youtube.com\/watch?v=hQ5-UQI2Aqw\" target=\"_blank\">Curso Laravel 4 &#8211; 7 &#8211; Modelo: Mostrando e insertando datos de la base de datos<\/a><\/li>\n<li><a title=\"Curso Laravel 4 - 8 - Formularios y Validaciones\" href=\"https:\/\/www.youtube.com\/watch?v=QoBCFUBOF-c\" target=\"_blank\">Curso Laravel 4 &#8211; 8 &#8211; Formularios y Validaciones<\/a><\/li>\n<\/ul>\n<\/li>\n<li><a title=\"Crear una aplicaci\u00f3n web en Laravel 4\" href=\"https:\/\/www.youtube.com\/watch?v=ajiAJf-rT0s\" target=\"_blank\">Crear una aplicaci\u00f3n web en Laravel 4<\/a><\/li>\n<\/ul>\n[\/stextbox]\n<h1>HTML5, CSS3 y Javascript<\/h1>\n[stextbox id=\u00bbgrey\u00bb caption=\u00bbHTML5, CSS3 y Javascript\u00bb collapsed=\u00bbtrue\u00bb]\n<ul>\n<li><a title=\"Curso Competo de HTML5, CSS3 y JavaScript Parte 1\" href=\"https:\/\/www.youtube.com\/watch?v=qz8Q1UGQdts\" target=\"_blank\">Curso Competo de HTML5, CSS3 y JavaScript Parte 1<\/a><\/li>\n<li><a title=\"Curso Competo de HTML5, CSS3 y JavaScript Parte 2\" href=\"https:\/\/www.youtube.com\/watch?v=Pk1hrQn2rrk\" target=\"_blank\">Curso Competo de HTML5, CSS3 y JavaScript Parte 2<\/a><\/li>\n<li><a title=\"Curso Competo de HTML5, CSS3 y JavaScript Parte 3\" href=\"https:\/\/www.youtube.com\/watch?v=8VQZ0trArxo\" target=\"_blank\">Curso Competo de HTML5, CSS3 y JavaScript Parte 3 &#8211; Herramientas avanzadas en CSS3<\/a><\/li>\n<li><a title=\"Curso Competo de HTML5, CSS3 y JavaScript Parte 4\" href=\"https:\/\/www.youtube.com\/watch?v=iUCsfL1cFlY\" target=\"_blank\">Curso Competo de HTML5, CSS3 y JavaScript Parte 4 &#8211; Herramientas avanzadas en CSS3 Parte II<\/a><\/li>\n<li><a title=\"Curso Completo de HTML5 CSS3 y JavaScript Parte 5\" href=\"https:\/\/www.youtube.com\/watch?v=8uAOYccgkfU\" target=\"_blank\">Curso Completo de HTML5 CSS3 y JavaScript Parte 5 &#8211; De qu\u00e9 va Javascript<\/a><\/li>\n<li><a title=\"Curso Completo de HTML5 CSS3 y JavaScript Parte 6\" href=\"https:\/\/www.youtube.com\/watch?v=sTh_1I1clu0\" target=\"_blank\">Curso Completo de HTML5 CSS3 y JavaScript Parte 6 &#8211; APIS en Javascript<\/a><\/li>\n<li><a title=\"Curso Completo de HTML5 CSS3 y JavaScript Parte 7\" href=\"https:\/\/www.youtube.com\/watch?v=dCm7bMdh1qs&amp;list=UU5yJ-2tt3Ic0oRfNYkUfleQ\" target=\"_blank\">Curso Completo de HTML5 CSS3 y JavaScript Parte 7 &#8211; API Canvas<\/a><\/li>\n<li><a title=\"Curso Completo de HTML5 CSS3 y JavaScript Parte 8\" href=\"https:\/\/www.youtube.com\/watch?v=ErB9n0L1FWg&amp;list=UU5yJ-2tt3Ic0oRfNYkUfleQ\" target=\"_blank\">Curso Completo de HTML5 CSS3 y JavaScript Parte 8 &#8211; API Canvas<\/a><\/li>\n<li><a title=\"Curso Completo de HTML5 CSS3 y JavaScript Parte 9\" href=\"https:\/\/www.youtube.com\/watch?v=1xPH0paUCs4&amp;list=UU5yJ-2tt3Ic0oRfNYkUfleQ\" target=\"_blank\">Curso Completo de HTML5 CSS3 y JavaScript Parte 9 &#8211; API Canvas &#8211; Procesamiento de im\u00e1genes<\/a><\/li>\n<li><a title=\"Curso Completo de HTML5 CSS3 y JavaScript Parte 10\" href=\"https:\/\/www.youtube.com\/watch?v=SPkc6tc2HQU&amp;list=UU5yJ-2tt3Ic0oRfNYkUfleQ\" target=\"_blank\">Curso Completo de HTML5 CSS3 y JavaScript Parte 10 &#8211; API Canvas &#8211; Animaciones en el lienzo<\/a><\/li>\n<li><a title=\"Curso Completo de HTML5 CSS3 y JavaScript Parte 11\" href=\"https:\/\/www.youtube.com\/watch?v=Yp6AAEjCXFM&amp;list=UU5yJ-2tt3Ic0oRfNYkUfleQ\" target=\"_blank\">Curso Completo de HTML5 CSS3 y JavaScript Parte 11 &#8211; Procesar v\u00eddeo con Canvas<\/a><\/li>\n<\/ul>\n[\/stextbox]<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>Buenas maneras de escribir c\u00f3digo php Pues eso, que ya que estoy empezando he pensado que mejor empezar haciendo bien las cosas y no de cualquier manera. As\u00ed que me he puesto a buscar sitios donde hablen de este tema &hellip; <a href=\"https:\/\/luismaseda.com\/wp\/?p=29\">Continue reading <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[41,3],"tags":[26,29,6,5,8,7,25,28,4,30],"class_list":["post-29","post","type-post","status-publish","format-standard","hentry","category-codeigniter","category-desarrollo-web","tag-codeigniter","tag-controlador","tag-css3","tag-framework","tag-html5","tag-javascript","tag-laravel-4","tag-modelo","tag-php-2","tag-vista"],"_links":{"self":[{"href":"https:\/\/luismaseda.com\/wp\/index.php?rest_route=\/wp\/v2\/posts\/29","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/luismaseda.com\/wp\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/luismaseda.com\/wp\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/luismaseda.com\/wp\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/luismaseda.com\/wp\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=29"}],"version-history":[{"count":72,"href":"https:\/\/luismaseda.com\/wp\/index.php?rest_route=\/wp\/v2\/posts\/29\/revisions"}],"predecessor-version":[{"id":407,"href":"https:\/\/luismaseda.com\/wp\/index.php?rest_route=\/wp\/v2\/posts\/29\/revisions\/407"}],"wp:attachment":[{"href":"https:\/\/luismaseda.com\/wp\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=29"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/luismaseda.com\/wp\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=29"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/luismaseda.com\/wp\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=29"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}