Introduction Introdução O desenvolvimento de aplicativos web dinâmicos e interativos é crucial no mundo dinâmico e em constante mudança do desenvolvimento da web. A velocidade e versatilidade do React, um kit de ferramentas JavaScript para criar interfaces de usuário, levaram à sua grande popularidade. No entanto, o PHP ainda é uma opção forte para programação do lado do servidor. Este tutorial mostrará como combinar facilmente a funcionalidade de um backend PHP e do front-end do React para aproveitar plenamente seus respectivos pontos fortes. Understanding the Distinct Roles of PHP and React Conheça as principais funções do PHP e do React What Is PHP? O que é PHP? O termo PHP é um acrônimo para Hypertext Preprocessor. É uma linguagem de script do lado do servidor que é usada para o desenvolvimento da web. Pode ser facilmente incorporado com arquivos HTML. Códigos HTML também podem ser escritos em um arquivo PHP. Merits Of PHP Benefícios do PHP Abaixo estão alguns benefícios do PHP: Ease of Learning and Use: O PHP é conhecido por sua sintaxe simples, que é relativamente fácil para iniciantes.Esta simplicidade ajuda novos desenvolvedores a começar a construir aplicativos web rapidamente. Wide Adoption and Community Support: PHP tem uma comunidade grande e ativa. Isso significa documentação extensa, inúmeros tutoriais e uma riqueza de recursos on-line. Suporte da comunidade também se traduz em uma vasta biblioteca de código pré-escrito, frameworks e plugins. Integration Capabilities: O PHP integra-se perfeitamente com vários bancos de dados (como MySQL, PostgreSQL, SQLite), servidores web (como Apache e Nginx) e outros serviços. Open Source: O PHP é livre para usar e distribuir, o que reduz o custo de desenvolvimento, especialmente para pequenas empresas e startups. Cross-Platform Compatibility: O PHP pode ser executado em várias plataformas, incluindo Windows, Linux e macOS. Esta flexibilidade garante que os aplicativos PHP possam ser implementados em ambientes diversos sem problemas de compatibilidade. Demerits Of PHP Descrição do PHP Abaixo estão algumas dicas 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: Muitas aplicações e tutoriais PHP ainda usam técnicas de programação procedural mais antigas do que práticas de programação moderna, orientada a objetos ou funcionais.Isso pode levar a código menos mantido e mais difícil de ler.Enquanto frameworks modernos incentivam melhores práticas, o legado do código procedural ainda pode ser um problema significativo. What Is React? O que é reação? React JS é uma biblioteca JavaScript declarativa, eficiente e flexível para a construção de interfaces de usuário. É “V” em MVC. ReactJS é uma biblioteca front-end de código aberto, baseada em componentes, responsável apenas pela camada de visualização da aplicação. É mantida pelo Facebook. Merits Of React Js Benefícios do React Js Abaixo estão alguns benefícios do 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 Descrição do React Js Abaixo estão algumas desvantagens do 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 sinergia entre PHP e React em aplicações web modernas A sinergia entre PHP e React em aplicações web modernas aproveita os pontos fortes de ambas as tecnologias para criar aplicações robustas, dinâmicas e escaláveis. 5 Benefits of Using PHP with React 5 benefícios de usar o PHP com o React Nota: os benefícios são mais de cinco, mas aqui estão alguns listados! 1. Full-Stack Versatility 1 – Versatilidade completa Integração Frontend e Backend: O React gerencia efetivamente o front end, enquanto o PHP pode lidar com a lógica do lado do servidor e as trocas de dados, resultando em um ambiente de desenvolvimento coerente. Desenvolvimento orientado por API: Ao fornecer dados para o front-end do React através de endpoints GraphQL ou RESTful, o PHP pode funcionar como uma poderosa API de back-end, permitindo uma divisão clara de responsabilidades. Efficiency of Development: Desenvolvimento Paralelo: As equipes que trabalham em projetos front-end e back-end simultaneamente podem acelerar o desenvolvimento e eliminar barreiras. Componentes reutilizados: O desenvolvimento do Frontend é mais modular e gerenciável devido ao design baseado em componentes do React, que garante que os elementos da interface são reutilizados. 2. Scalability 2 – Escalabilidade Managing a Higher Load: Frameworks PHP como o Laravel são projetados para gerenciar enormes quantidades de dados e solicitações de usuários de forma eficaz, lidando com processos de backend complexos e escaláveis. Otimização de Frontend: Mesmo com aplicativos complexos e intensivos em dados, o dom virtual do React e a técnica eficaz de difusão garantem mudanças rápidas e responsivas na interface. Architecture of Microservices: Abordagem Modular: Diferentes serviços podem escalar independentemente quando o PHP é incluído em uma arquitetura de microsserviços. Distribuição de carga: O programa como um todo pode gerenciar o tráfego com mais habilidade, dividindo a carga entre o PHP, que lida com operações do lado do servidor, e o React, que lida com interações do lado do cliente. 3. Performance 3 - Desempenho Quick load times: Server-Side Rendering (SSR): O HTML inicial pode ser pré-renderizado pelo PHP e enviado para o cliente; em seguida, o React pode hidratá-lo. Asynchronous Data Fetching: Usando o React, os dados podem ser recuperados do backend do PHP de forma assíncrona, mantendo uma interface de usuário responsiva e gerenciando efetivamente as alterações de dados. Enhanced Communication: Gerenciamento de estado eficaz: As características de gerenciamento de estado do React, como contextos e ganchos, permitem um melhor gerenciamento das mudanças de estado da interface, o que minimiza a necessidade de re-renderes sem sentido. Caching e otimização: o PHP pode usar técnicas de cache do lado do servidor para acelerar o fornecimento de material estático e reduzir a demanda de banco de dados, melhorando assim o desempenho. Rich User Interfaces Interfaces de usuário ricas UIs that are interactive and dynamic: O design baseado em componentes do React permite que os programadores criem interfaces de usuário complexas e interativas que são fáceis de atualizar e expandir. Component-Based design: O React é capaz de lidar com mudanças dinâmicas de conteúdo e atualizações em tempo real com eficiência, proporcionando uma experiência de usuário suave e interessante. Real-Time Updates: Improved User Experience: Bibliotecas de UI contemporâneas: React funciona bem com bibliotecas e frameworks de UI contemporâneos (como Material-UI e Ant Design), permitindo que os programadores projetem interfaces de usuário esteticamente agradáveis e intuitivas. Construir interfaces de usuário responsivas e adaptáveis (UI) que funcionem efetivamente em uma variedade de dispositivos e tamanhos de tela é simplificado usando o React. 5. SEO-Friendly 5 – SEO amigável Better Optimization for Search Engines: Server-Side Rendering (SSR): Pre-rendering de conteúdo HTML usando PHP antes de fornecê-lo ao cliente garante melhor indexação de mecanismos de busca e SEO. Meta Tags e material dinâmico: Usando informações do backend PHP, o React pode gerenciar e atualizar dinamicamente meta tags, títulos e outros materiais relevantes para SEO. Better Crawlability: Geração estática de sites (SSG): React pode produzir páginas estáticas no momento da construção, melhorando o SEO do aplicativo, mantendo o PHP para conteúdo dinâmico, utilizando soluções como Next.js, que suporta SSR e SSG. React pode lidar com roteamento e navegação, garantindo que visitantes e motores de busca possam explorar o site com facilidade, enquanto o PHP pode gerenciar estruturas de URL claras e amigáveis ao SEO. Os desenvolvedores podem construir aplicativos online robustos, escaláveis e otimizados para o desempenho com experiências ricas de usuários e otimização de mecanismos de busca, integrando o PHP com o React. Creating a PHP and React Development Environment Criar um ambiente de desenvolvimento PHP e React Neste ponto, estamos prestes a começar um projeto real usando React.js e PHP como o front end. Prerequisites pré-requisitos Existem coisas que você precisa saber como desenvolvedor, ou coisas que você precisa ter, para ser capaz de fazer o PHP funcionar como um backend com o React. Conhecimento básico de PHP Conheça o React.js Certifique-se de que o Node.js, acompanhado por npm, está instalado em sua máquina. Você tem PHP instalado no seu sistema, seja Apache ou Nginx Step By Step Process On How To Use PHP As A Backend Using React As A Front-end Processo passo a passo sobre como usar o PHP como um backend usando React como um front-end O passo para usar o PHP como um backend ao lado do React é bastante simples, e é o seguinte. Building The Frontend Abra o seu terminal e execute o seguinte comando: Step 1: npx create-react-app my-react-app Nota: antes de executar este comando, você tem que cd para o diretório onde você quer que sua pasta React para ser! cd Documents Depois disso, você estará esperando que seu aplicativo React seja criado. Navegue para a pasta do seu projeto. O projeto que você acabou de criar precisa ser visitado no terminal. Step 2: cd my-react-app Inicie o servidor de desenvolvimento: Step 3: npm start Building the PHP Backend É hora de construir o backend PHP agora que sua aplicação React está operacional: Crie uma nova pasta para seus arquivos PHP no diretório do seu aplicativo React. Para conseguir isso, execute o seguinte comando no seu terminal. Step 1: mkdir php_backend Ao executar este comando, você verá uma pasta chamada php_backend. Dentro da pasta php-backend, crie um arquivo Nota: Você é livre para chamá-lo qualquer nome. No meu caso, eu decidi usar o . Step 2: index.php index.php Em O Você pode começar a definir seus endpoints e lógica PHP. Abaixo está o que está escrito em meu Se você é um desenvolvedor de PHP, você estará familiarizado com 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 próxima coisa a fazer é ir para o Código React que você criou anteriormente e abrir a pasta em seu editor de código. , e adicione esta sintaxe 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 que o PHP funcione é Olhe para o fragmento de código abaixo.Você verá como nós o usamos! Axios Na pasta pública do seu projeto, você verá um Nesse arquivo, adicionei um CDN Bootstrap como um framework que estou usando. index.html <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@4.6.2/dist/css/bootstrap.min.css"> Aqui está um 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); } } Depois de tentar tudo isso, aqui está a visão que você verá. Aqui está o banco de dados que controla o backend. Depois de preencher o texto e clicar em Salvar, o texto será exibido no banco de dados automaticamente. Depois disso, escrevi e eu cliquei em Navegar, no canto superior direito da imagem mostrada abaixo. Uma vez que você vê isso, saiba que você fez a coisa certa. Freddie Esse é o passo que eu usei em React e PHP em um único aplicativo. Conclusion CONCLUSÃO Em conclusão, a integração do PHP como backend com o React como frontend oferece uma solução robusta e versátil para o desenvolvimento de aplicativos web modernos. Como discutido, esta combinação aproveita os pontos fortes das capacidades do lado do servidor do PHP e a arquitetura dinâmica baseada em componentes do React para criar aplicativos escaláveis e de alto desempenho. PHP lida com eficiência com a lógica do lado do servidor, interações de banco de dados e criação de API, enquanto o React garante uma interface de usuário rica e responsiva e o gerenciamento de dados sem problemas. Esta sinergia entre PHP e React não só melhora o processo de desenvolvimento, mas também resulta em aplicativos web que são interativos, envolventes e SEO-friendly. Espero que você tenha achado este tutorial incrivelmente valioso! até a próxima vez, adeus. About The Author Sobre o autor Desenvolvedor Laravel tem Ele desenvolveu habilidades completas ao combinar o desenvolvimento de software, escrever e instruir outros no que ele faz. Emmanuel Okolie 4+ Seus estágios incluem , em , em , em Como freelancer, ele cria sites para clientes e escreve guias técnicos para mostrar às pessoas como fazer o que ele faz. ReactJS Laravel PHP JavaScript Se tiverem a oportunidade, gostaria de conversar com você. por favor vá e siga-o em seu O Facebook, , em e . Emmanuel Okolie WEB WEB GitHub Linkedin → O Twitter