{"id":2292,"date":"2024-06-10T21:02:41","date_gmt":"2024-06-11T01:02:41","guid":{"rendered":"https:\/\/saemas.com\/sitio_web\/?p=2292"},"modified":"2024-09-27T10:28:09","modified_gmt":"2024-09-27T14:28:09","slug":"react-cakephp-integrar-react-en-un-proyecto-cakephp","status":"publish","type":"post","link":"https:\/\/saemas.com\/sitio_web\/react-cakephp-integrar-react-en-un-proyecto-cakephp\/","title":{"rendered":"React &#8211; Cakephp: Integrar React en un proyecto Cakephp"},"content":{"rendered":"\n<p>En la carpeta \u00absrc\u00bb de Cakephp ejecutar:<\/p>\n\n\n\n<p>npm create vite@latest nombre-de-la-aplicacion &#8212; &#8211;template react<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>cd nombre_del_proyecto_react<\/code><\/pre>\n\n\n\n<p>Hacer los siguientes cambios en la l\u00ednea del package.json del proyecto react reci\u00e9n creado, donde se invoca a \u00abreact-script build\u00bb<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>\"build\": \"react-scripts build &amp;&amp; rm -rf \/opt\/lampp\/htdocs\/nombre_del_proyecto_cakephp\/webroot\/build &amp;&amp; cp -rv build \/opt\/lampp\/htdocs\/sistemasangabriel\/webroot\"<\/code><\/pre>\n\n\n\n<p>Guardar el archivo package.json<\/p>\n\n\n\n<p>Posicionado en la carpeta del nuevo proyecto react proceder a crear los componentes en los m\u00f3dulos: Index.js, Index.css, App.js y App.css<\/p>\n\n\n\n<p>Una vez que se codificado el componente ejecutar:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>npm start<\/code><\/pre>\n\n\n\n<p>Para compilar la carpeta de producci\u00f3n<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>npm run build<\/code><\/pre>\n\n\n\n<p>Agregar en el encabezado del controlador de Cakephp donde se desee insertar el componente el siguiente c\u00f3digo:<\/p>\n\n\n\n<p>use Cake\\Filesystem\\File; <\/p>\n\n\n\n<p>Despu\u00e9s crear una acci\u00f3n en el controlador donde se quiere insertar el componente y agregar este c\u00f3digo en esa acci\u00f3n:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>$filePath = WWW_ROOT . 'build\/asset-manifest.json';<br>$file = new File($filePath);<br> <br>$manifest = json_decode($file-&gt;read());<br>$file-&gt;close();<br> <br>$maincss = 'main.css';<br>$mainjs = 'main.js';<br> <br>$css = '\/build' . $manifest-&gt;files-&gt;$maincss;<br>$js = '\/build' . $manifest-&gt;files-&gt;$mainjs;<br>$this-&gt;set(compact('css', 'js'));<\/code><\/pre>\n\n\n\n<p>Crear el respectivo archivo \u00ab.ctp\u00bb en los templates del proyecto y agregar el siguiente c\u00f3digo<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>&lt;?php<br>use Cake\\Routing\\Router; <br>$this-&gt;Html-&gt;css($css, &#91;<br>'block' =&gt; true,<br>]); ?&gt;<br>&lt;div id=\"root\"&gt;&lt;\/div&gt;<br>&lt;?=$this-&gt;Html-&gt;script($js); ?&gt;<\/code><\/pre>\n\n\n\n<p>Ejecutar el proyecto Cakephp en el navegador y posicionarse en la ruta de la acci\u00f3n que se cre\u00f3<\/p>\n\n\n\n<p>Listo !<\/p>\n\n\n\n<p>Fuente:<\/p>\n\n\n\n<figure class=\"wp-block-embed is-type-wp-embed is-provider-clouddevs-hire-senior-latam-developers-within-24-hours wp-block-embed-clouddevs-hire-senior-latam-developers-within-24-hours\"><div class=\"wp-block-embed__wrapper\">\n<blockquote class=\"wp-embedded-content\" data-secret=\"DBorqDjVKI\"><a href=\"https:\/\/clouddevs.com\/cakephp\/single-page-applications-with-react\/\">CakePHP and React: Building Single-Page Applications<\/a><\/blockquote><iframe loading=\"lazy\" class=\"wp-embedded-content\" sandbox=\"allow-scripts\" security=\"restricted\" style=\"position: absolute; clip: rect(1px, 1px, 1px, 1px);\" title=\"&#8220;CakePHP and React: Building Single-Page Applications&#8221; &#8212; CloudDevs - Hire Senior LATAM Developers within 24 Hours\" src=\"https:\/\/clouddevs.com\/cakephp\/single-page-applications-with-react\/embed\/#?secret=ggJAmxmhOc#?secret=DBorqDjVKI\" data-secret=\"DBorqDjVKI\" width=\"600\" height=\"338\" frameborder=\"0\" marginwidth=\"0\" marginheight=\"0\" scrolling=\"no\"><\/iframe>\n<\/div><\/figure>\n\n\n\n<p><a href=\"https:\/\/toggen.com.au\/it-tips\/embedding-reactjs-in-a-cakephp-view\">https:\/\/toggen.com.au\/it-tips\/embedding-reactjs-in-a-cakephp-view<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>En la carpeta \u00absrc\u00bb de Cakephp ejecutar: npm create vite@latest nombre-de-la-aplicacion &#8212; &#8211;template react Hacer los siguientes cambios en la l\u00ednea del package.json del proyecto react reci\u00e9n creado, donde se invoca a \u00abreact-script build\u00bb Guardar el archivo package.json Posicionado en la carpeta del nuevo proyecto react proceder a crear los componentes en los m\u00f3dulos: Index.js, [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"material-hide-sections":[],"footnotes":""},"categories":[11,66],"tags":[12,67],"class_list":["post-2292","post","type-post","status-publish","format-standard","hentry","category-cakephp","category-react-js","tag-cakephp","tag-reactjs"],"_links":{"self":[{"href":"https:\/\/saemas.com\/sitio_web\/wp-json\/wp\/v2\/posts\/2292","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/saemas.com\/sitio_web\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/saemas.com\/sitio_web\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/saemas.com\/sitio_web\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/saemas.com\/sitio_web\/wp-json\/wp\/v2\/comments?post=2292"}],"version-history":[{"count":13,"href":"https:\/\/saemas.com\/sitio_web\/wp-json\/wp\/v2\/posts\/2292\/revisions"}],"predecessor-version":[{"id":2356,"href":"https:\/\/saemas.com\/sitio_web\/wp-json\/wp\/v2\/posts\/2292\/revisions\/2356"}],"wp:attachment":[{"href":"https:\/\/saemas.com\/sitio_web\/wp-json\/wp\/v2\/media?parent=2292"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/saemas.com\/sitio_web\/wp-json\/wp\/v2\/categories?post=2292"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/saemas.com\/sitio_web\/wp-json\/wp\/v2\/tags?post=2292"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}