Introduction Introdución Desenvolver aplicacións web dinámicas e interactivas é crucial no mundo dinámico e sempre cambiante do desenvolvemento web. A velocidade e versatilidade de React, un kit de ferramentas JavaScript para crear interfaces de usuario, levaron á súa gran popularidade. Con todo, PHP aínda é unha opción forte para a programación do lado do servidor. Este tutorial mostraralle como combinar facilmente a funcionalidade dun backend PHP e React front-end para aproveitar plenamente os seus respectivos puntos fortes. Understanding the Distinct Roles of PHP and React Comprender as funcións distintivas de PHP e React What Is PHP? ¿Que é PHP? O termo PHP é un acrónimo para Hypertext Preprocessor. É unha linguaxe de scripting do lado do servidor que se usa para o desenvolvemento web. Pódese incorporar facilmente con ficheiros HTML. Merits Of PHP Beneficios do PHP A continuación, algunhas das vantaxes de PHP: Ease of Learning and Use: PHP é coñecido pola súa sintaxe sinxela, que é relativamente fácil para os principiantes. Wide Adoption and Community Support: PHP ten unha comunidade grande e activa. Isto significa extensa documentación, numerosos tutoriais e unha riqueza de recursos en liña. Integration Capabilities: PHP integra perfectamente con varias bases de datos (como MySQL, PostgreSQL, SQLite), servidores web (como Apache e Nginx), e outros servizos. Open Source: PHP é libre de usar e distribuír, o que reduce o custo de desenvolvemento, especialmente para pequenas empresas e startups. Cross-Platform Compatibility: PHP pode executarse en múltiples plataformas, incluíndo Windows, Linux e macOS. Esta flexibilidade asegura que as aplicacións PHP poden ser implantadas en diversos ambientes sen problemas de compatibilidade. Demerits Of PHP Descrición do PHP A continuación están algunhas desviacións de PHP. Inconsistent Function Naming and Parameter Order: One of the common criticisms of PHP is its inconsistent function naming conventions and parameter order. For example, functions may have different naming patterns ( vs ) parameter orders ( ) vs. ). This inconsistency can lead to confusion and errors, especially for new developers. str_replace strpos array_filter($array, $callback array_map($callback, $array) Historical Security Issues: PHP has a history of security vulnerabilities, partly due to its widespread use and partly due to its design. While modern PHP has significantly improved in terms of security features, legacy codebases and bad practices from earlier versions can still pose security risks. Performance Compared to Other Languages: While PHP has made great strides in improving performance (especially with PHP 7 and later), it can still be slower compared to some other languages like Node.js or Go for certain tasks. This can be a drawback for applications requiring extremely high performance and low latency. Weak Typing: PHP’s weak typing system, which allows implicit type conversions, can lead to unexpected behavior and bugs that are difficult to track down. For example, comparing a string to a number may yield unexpected results ( It is true, but it is false. This can be problematic, especially for large, complex codebases. "123" == 123 "123" === 123 5. Over-Reliance on Older, Procedural Code: Moitas aplicacións e tutoriais de PHP aínda usan técnicas de programación procedimental máis antigas que prácticas de programación moderna, orientada a obxectos ou funcionais. Isto pode levar a un código menos mantido e máis difícil de ler. What Is React? Que é unha reacción? React JS é unha biblioteca JavaScript declarativa, eficiente e flexible para a construción de interfaces de usuario. É 'V' en MVC. ReactJS é unha biblioteca front-end de código aberto baseada en compoñentes, responsable só da capa de vista da aplicación. É mantida por Facebook. Merits Of React Js Descrición do xogo React Js Abaixo están algúns dos beneficios de React.js. Component-Based Architecture: React follows a component-based architecture, which allows developers to build reusable UI components. This modularity leads to cleaner, more maintainable, and scalable code. Components can be reused across different parts of an application, reducing redundancy and improving development efficiency. Virtual DOM for Improved Performance: React uses a Virtual DOM (Document Object Model) to optimize rendering performance. When the state of an application changes, React updates the Virtual DOM first, which then efficiently updates the actual DOM only where necessary. This minimizes direct manipulation of the DOM, leading to faster and more efficient updates, particularly beneficial for complex applications with frequent UI changes. Declarative UI: React's declarative approach to building UIs makes code more predictable and easier to debug. Developers describe what the UI should look like for a given state, and React takes care of updating the actual UI based on state changes. This simplifies the process of developing interactive user interfaces and makes the code more readable. Rich Ecosystem and Community Support: React has a vast ecosystem with numerous libraries, tools, and extensions that enhance its functionality. The strong community support ensures that developers have access to extensive resources, tutorials, and third-party components. Additionally, the backing of Facebook and contributions from a large number of developers worldwide ensure React remains up-to-date and continuously improving. Strong Support for JSX: React uses JSX (JavaScript XML), a syntax extension that allows HTML to be written within JavaScript. JSX simplifies the process of creating React components and makes the code more readable by visually separating the structure (HTML) from the logic (JavaScript). This tight integration of markup with logic enhances development efficiency and reduces context switching for developers. Demerits Of React Js Descrición do xogo React Js A continuación móstranse algunhas desviacións de React.js. Steep Learning Curve: React's flexibility and the wide array of tools and libraries in its ecosystem can make the learning curve steep for beginners. Understanding concepts like JSX, components, state management, and the intricacies of the Virtual DOM can be challenging for new developers. Boilerplate and Complexity: Setting up a React project often involves considerable boilerplate code and configuration. Tools like Create React App simplify the initial setup, but as projects grow, the complexity can increase, requiring additional configuration and understanding of build tools like Webpack and Babel. Rapidly Changing Environment: The React ecosystem evolves quickly, with frequent updates and new tools emerging regularly. Keeping up with the latest best practices, updates, and libraries can be overwhelming for developers. This fast pace of change can also lead to issues with outdated documentation and compatibility between different libraries and versions. Poor SEO: By default, React renders applications on the client side, which can lead to poor SEO performance because search engine crawlers might have difficulty indexing the dynamic content. Although solutions like server-side rendering (SSR) with frameworks like Next.js exist, implementing them adds complexity to the project. State Management Complexity: Managing state in large React applications can become complex. While React's built-in state management works well for small applications, scaling up requires more sophisticated state management solutions like Redux, MobX, or the Context API. These solutions add another layer of complexity and require additional learning and setup. The Synergy Between PHP and React in Modern Web Applications A sinerxía entre PHP e React en aplicacións web modernas A sinerxía entre PHP e React nas aplicacións web modernas aproveita os puntos fortes de ambas as tecnoloxías para crear aplicacións robustas, dinámicas e escalables. 5 Benefits of Using PHP with React 5 beneficios de usar PHP con React Nota: os beneficios son máis de cinco, pero aquí están algúns listados! 1. Full-Stack Versatility Versatilidade Full Stack Integración frontend e backend: Xestión de datos sinxela: React xestiona de forma eficaz o front-end, mentres que PHP pode xestionar a lóxica do lado do servidor e os intercambios de datos, resultando nun ambiente de desenvolvemento coherente. Desenvolvemento baseado en API: Ao fornecer datos ao frontend de React a través de puntos finais GraphQL ou RESTful, PHP pode funcionar como unha potente API de backend, permitindo unha clara división de responsabilidades. Efficiency of Development: Desenvolvemento paralelo: Os equipos que traballan simultaneamente en proxectos front-end e back-end poden acelerar o desenvolvemento e eliminar os obstáculos. Compoñentes reutilizados: O desenvolvemento de Frontend é máis modular e xestionable debido ao deseño baseado en compoñentes de React, que garante que os elementos de interface se reutilizan. 2. Scalability 2 Escalabilidade Managing a Higher Load: Efectivos Backend: Frameworks PHP como Laravel están deseñados para xestionar enormes cantidades de datos e solicitudes de usuario de forma eficaz, xestionando procesos de backend complexos e escalables. Optimización frontend: Mesmo con aplicacións complexas e intensivas en datos, o DOM virtual de React e a técnica eficaz de difusión garanten cambios rápidos e responsivos na interface. Architecture of Microservices: Enfoque modular: Os diferentes servizos poden escalarse de forma independente cando PHP está incluído nunha arquitectura de microservizos. React facilita a escalabilidade permitíndolle usar estes servizos segundo sexa necesario. Distribución de carga: O programa como un todo pode xestionar o tráfico con máis habilidade dividindo a carga entre PHP, que xestiona as operacións do lado do servidor, e React, que xestiona as interaccións do lado do cliente. 3. Performance 3 Desempeño Quick load times: Server-Side Rendering (SSR): O HTML inicial pode ser pre-renderado por PHP e enviado ao cliente; a continuación, React pode hidratalo. Asíncrono Data Fetching: Usando React, os datos poden ser recuperados do backend de PHP de forma asíncrona, mantendo unha interface de usuario responsiva e manexando eficazmente os cambios de datos. Enhanced Communication: Xestión de estado eficaz: As características de xestión de estado de React, como contextos e ganchos, permiten un mellor manexo dos cambios de estado de UI, o que minimiza a necesidade de re-renderes sen sentido. Cache e optimización: PHP pode usar técnicas de caché do lado do servidor para acelerar o envío de material estático e reducir a demanda de bases de datos, mellorando así o rendemento. Rich User Interfaces Interfaces de usuario ricas UIs that are interactive and dynamic: O deseño baseado en compoñentes de React permite aos programadores crear interfaces de usuario complexas e interactivas que son sinxelas de actualizar e expandir. Component-Based design: React é capaz de xestionar cambios dinámicos de contido e actualizacións en tempo real con eficiencia, facendo unha experiencia de usuario suave e interesante. Real-Time Updates: Improved User Experience: Bibliotecas de UI contemporáneas: React funciona ben con bibliotecas e marcos de UI contemporáneos (como Material-UI e Ant Design), permitindo aos programadores deseñar interfaces de usuario estéticamente agradables e intuitivas. A construción de interfaces de usuario responsivas e adaptábeis (UI) que funcionen de forma eficaz nunha variedade de dispositivos e tamaños de pantalla faise sinxela usando React. 5. SEO-Friendly 5o Amigable Better Optimization for Search Engines: Server-Side Rendering (SSR): Pre-rendering de contido HTML usando PHP antes de proporcionalo ao cliente garante unha mellor indexación de buscadores e SEO. Meta Tags e material dinámico: Usando información do backend PHP, React pode xestionar e actualizar dinamicamente meta tags, títulos e outro material relevante para SEO. Better Crawlability: Xeración estática de sitios (SSG): React pode producir páxinas estáticas no momento da construción, mellorando o SEO da aplicación mentres se conserva PHP para o contido dinámico, utilizando solucións como Next.js, que soporta tanto SSR como SSG. Estrutura de URL: React pode xestionar o enrutamento e a navegación, asegurándose de que os visitantes e os motores de busca poidan explorar o sitio con facilidade, mentres que PHP pode xestionar estruturas de URL claras e amigables para SEO. Os desenvolvedores poden construír aplicacións en liña robustas, escalables e optimizadas para o rendemento con ricas experiencias de usuario e optimización de buscadores integrando PHP con React. Creating a PHP and React Development Environment Creación dun entorno de desenvolvemento PHP e React Neste punto, estamos a piques de comezar un proxecto real usando React.js e PHP como o front end. Prerequisites Precondicións Hai cousas que debes saber como desenvolvedor, ou cousas que debes ter, para poder facer que PHP funcione como un backend con React. Coñecementos básicos de PHP Coñece o teu React.js Asegúrese de que Node.js, acompañado por npm, está instalado na súa máquina. Ten PHP instalado no seu sistema, sexa Apache ou Nginx Step By Step Process On How To Use PHP As A Backend Using React As A Front-end Proceso paso a paso sobre como usar PHP como un backend usando React como un front-end O paso para usar PHP como un backend xunto con React é bastante sinxelo, e é como segue. Building The Frontend Abre o terminal e executa o seguinte comando: Step 1: npx create-react-app my-react-app Nota: antes de executar este comando, ten que cd para o directorio onde quere a súa carpeta React para ser! O xeito de cd para o seu directorio desexado é engadindo este comando ao seu terminal. cd Documents Despois diso, agardarás a que se cree a túa aplicación React. Navega á túa carpeta de proxecto. O proxecto que acabas de crear necesita ser visitado no terminal. Step 2: cd my-react-app Iniciar o servidor de desenvolvemento: Step 3: npm start Building the PHP Backend É hora de construír o backend PHP agora que a súa aplicación React está operativa: Crea unha nova carpeta para os teus ficheiros PHP no directorio da túa aplicación React. Para iso, executa o seguinte comando no teu terminal. Step 1: mkdir php_backend Ao executar este comando, verá unha carpeta chamada php_backend. Dentro da carpeta php-backend, crea un ficheiro chamado Nota: Vostede é libre para chamalo calquera nome. No meu caso, eu decidín usar o . Step 2: index.php index.php Na súa Podes comezar a definir os teus puntos finais e lóxica de PHP. Abaixo está o que está escrito no meu Se vostede é un desenvolvedor de PHP, estará familiarizado con esta sintaxe. Step 3: index.php php-backend/index.php <?PHP $serverName="localhost"; $userName="root"; $password=""; $databaseName="react_php"; $conn = mysqli_connect($serverName, $userName, $password, $databaseName); $recText = $_POST['text']; $query = ("INSERT INTO react_php (texts) VALUES('$recText')"); if (mysqli_query($conn, $query)) { echo "Data has been inserted successfully"; }else { echo "Error"; } ?> Agora, a seguinte cousa a facer é ir ao código de reacción que creou anteriormente e abrir a carpeta no seu editor de código. , e engade esta sintaxe máis abaixo. src/App.js import React, { Component } from 'react'; // import logo from './logo.svg'; import axios from 'axios'; //Import Axios import './App.css'; class App extends Component{ state = { text : "" } handleAdd = async e =>{ await this.setState({ text : e.target.value }) } handleSubmit = e =>{ e.preventDefault(); console.log(this.state.text); let formData = new FormData(); formData.append("text", this.state.text); const url = "http://localhost:80/react-backend/" axios.post(url,formData) .then(res=> console.log(res.data)) .catch(err=> console.log(err)) } render(){ return( <div className="App-header"> <input onChange={this.handleAdd} className="form-control" // value={this.state.text} type="text" id='text' placeholder='Enter Some Text!'/> <br/> <button onClick={this.handleSubmit} className="btn btn-success" id='submit'> Save</button> </div> ); } } export default App; Nota: O que permite PHP para traballar é Vexa o código abaixo e verás como o usamos! Axios Na páxina do proxecto, verás unha Nese ficheiro, engadín un Bootstrap CDN como un marco que estou a usar. index.html <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@4.6.2/dist/css/bootstrap.min.css"> Aquí tes un pouco de estilo. .App { text-align: center; } .App-logo { height: 40vmin; pointer-events: none; } @media (prefers-reduced-motion: no-preference) { .App-logo { animation: App-logo-spin infinite 20s linear; } } .App-header { background-color: #282c34; min-height: 100vh; display: flex; flex-direction: column; align-items: center; justify-content: center; font-size: calc(10px + 2vmin); color: white; } .App-link { color: #61dafb; } @keyframes App-logo-spin { from { transform: rotate(0deg); } to { transform: rotate(360deg); } } Despois de probar todo isto, aquí está a visión que verás. Aquí está a base de datos que controla o backend. Unha vez que complete o texto e faga clic en gardar, o texto aparecerá automaticamente na base de datos. Despois escribín e preme en Navegar, na esquina superior dereita da imaxe que se mostra a continuación. Unha vez que vexa isto, saber que fixo a cousa correcta. Freddie É o paso que usei en React e PHP nunha única aplicación. Conclusion Conclusión En conclusión, a integración de PHP como backend con React como frontend ofrece unha solución robusta e versátil para o desenvolvemento de aplicacións web modernas. Como se discutiu, esta combinación aproveita os puntos fortes das capacidades do lado do servidor de PHP e a arquitectura dinámica baseada en compoñentes de React para crear aplicacións escalables e de alto rendemento. PHP xestiona eficientemente a lóxica do lado do servidor, as interaccións de bases de datos e a creación de API, mentres que React asegura unha interface de usuario rica e responsiva e un manexo de datos sinxelo. Esta sinerxía entre PHP e React non só mellora o proceso de desenvolvemento, senón que tamén resulta en aplicacións web que son interactivas, atractivas e SEO-friendly. Espero que este tutorial sexa incrible valioso! ata a próxima vez, adeus. About The Author Sobre o autor Desenvolvedor Laravel Teño Desenvolveu habilidades completas ao combinar o desenvolvemento de software, escribir e instruír a outros no que fai. Emmanuel Okolie 4+ As súas estacións inclúen , , , Como freelancer, crea sitios web para clientes e escribe guías técnicas para mostrar ás persoas como facer o que fai. ReactJS Laravel PHP JavaScript Se lle damos a oportunidade, gustaríame falar contigo.Por favor, vaite e síguelo na súa En Facebook, , , e . Emmanuel Okolie Páxina web GitHub ligazóns Twitter Páxina