Introduction Увод Развијање динамичних и интерактивних веб апликација је кључно у динамичном и стално мењајућем свету веб развоја. Брзина и разноврсност Реацт-а, алатка за ЈаваСцрипт за креирање корисничких интерфејса, довела је до његове велике популарности. Међутим, ПХП је и даље јака опција за програмирање са стране сервера. Овај туториал ће вам показати како лако комбиновати функционалност ПХП бацкенда и Реацт фронт-енда како би у потпуности искористили њихове снаге. Understanding the Distinct Roles of PHP and React Разумевање различитих улога ПХП и Реацт What Is PHP? Šta je PHP? Термин ПХП је акроним за Хипертекст Препроцесор. То је серверски скриптинг језик који се користи за веб развој. Може се лако уградити са ХТМЛ датотекама. ХТМЛ кодови се такође могу написати у ПХП датотеци. Merits Of PHP Prednosti PHP Ево неколико предности ПХП-а: Ease of Learning and Use: PHP je poznat po svojoj jednostavnoj sintaksi, koja je relativno jednostavna za početnike. Ova jednostavnost pomaže novim programerima da brzo počnu da grade web aplikacije. Wide Adoption and Community Support: ПХП има велику и активну заједницу. Ово значи обимну документацију, бројне туторијале и богатство онлине ресурса. Подршка заједнице се такође преводи у велику преписану коду, оквире и библиотеку додатака. Integration Capabilities: PHP се беспрекорно интегрише са различитим базама података (као што су MySQL, PostgreSQL, SQLite), веб серверима (као што су Apache и Nginx), и другим услугама. Open Source: PHP je slobodan za korišćenje i distribuciju, što smanjuje troškove razvoja, posebno za mala preduzeća i startupe. Cross-Platform Compatibility: PHP може да ради на више платформи, укључујући Виндовс, Линук и мацОС. Ова флексибилност осигурава да се ПХП апликације могу распоредити у различитим окружењима без проблема компатибилности. Demerits Of PHP Преузети 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: Многе ПХП апликације и туторијали и даље користе старије, процедуралне технике програмирања уместо модерних, објектно оријентисаних или функционалних пракси програмирања.То може довести до мање одржавања и тежег читања кода.Док модерни оквири подстичу боље праксе, наслеђе процедуралног кода и даље може бити значајан проблем. What Is React? Šta je reakcija? Реацт ЈС је декларативна, ефикасна и флексибилна ЈаваСцрипт библиотека за изградњу корисничких интерфејса. То је "В" у МВЦ-у. РеацтЈС је библиотека отвореног кода, базирана на компонентама, одговорна само за слој погледа апликације. Merits Of React Js Предности React Js Испод је неколико предности 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 Демерити Реацт Јс Испод је неколико Демеритс Реацт.јс. 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 Синергија између ПХП-а и Реацт-а у модерним веб апликацијама Синергија између ПХП-а и Реацт-а у савременим веб апликацијама користи снаге обе технологије за креирање робусних, динамичних и скалабилних апликација. 5 Benefits of Using PHP with React 5 Предности коришћења ПХП са Реацтом Напомена: предности су више од пет, али ево неколико наведених! 1. Full-Stack Versatility 1 Комплетна универзалност Frontend i backend integracija: Bezbedno rukovanje podacima: React efikasno upravlja front endom, dok PHP može da rukuje logikom i razmenom podataka sa strane servera, što rezultira koherentnim razvojnim okruženjem. API-Driven Development: Pružanjem podataka u React frontend preko GraphQL ili RESTful endpoints, PHP može da funkcioniše kao moćan backend API, omogućavajući jasnu podelu odgovornosti. Efficiency of Development: Paralelni razvoj: Timovi koji istovremeno rade na front-end i back-end projektima mogu da ubrzaju razvoj i eliminišu prepreke. Ponovno korišćene komponente: Frontend razvoj je modularniji i upravljiviji zbog React-ovog dizajna zasnovanog na komponentima, koji garantuje da se elementi UI ponovo koriste. 2. Scalability 2. скалабилност Managing a Higher Load: Ефективни бацкенд: ПХП оквири попут Ларавела су дизајнирани да ефикасно управљају огромним количинама података и захтевима корисника, управљајући сложеним и скалабилним бацкенд процесима. Frontend optimizacija: Čak i kod složenih i podataka intenzivnih aplikacija, React virtuelni DOM i efikasna tehnika difinga garantuju brze i odgovorne promene UI-ja. Architecture of Microservices: Модуларни приступ: Различите услуге могу да скалирају независно када је ПХП укључен у архитектуру микро-услуга. Реацт олакшава скалабилност тако што му омогућава да користи ове услуге по потреби. Дистрибуција оптерећења: Програм у целини може вешто управљати саобраћајем тако што дели оптерећење између ПХП-а, који се бави операцијама са стране сервера, и Реацта, који се бави интеракцијама са стране клијента. 3. Performance 3. перформансе Quick load times: Server-Side Rendering (SSR): Početak HTML-a može da bude unapred isporučen od strane PHP-a i poslan klientu; nakon toga, React može da ga hidrira. Асинхронско повлачење података: Користећи Реацт, подаци се могу асинхроно повлачити из ПХП бацкенда, одржавајући одговарајући кориснички интерфејс и ефикасно руковање променама података. Enhanced Communication: Ефективно управљање стањем: Реацт функције управљања стањем, као што су контекст и кукови, омогућавају боље управљање променама стања корисничког интерфејса, што минимизира потребу за безначајним ре-рендерима. Кеширање и оптимизација: ПХП може да користи технике кеширања са стране сервера како би убрзао испоруку статичког материјала и смањио захтев за базом података, чиме се побољшава перформансе. Rich User Interfaces Богат кориснички интерфејс UIs that are interactive and dynamic: Дизајн заснован на компонентама омогућава програмерима да креирају сложене, интерактивне корисничке интерфејсе који се лако ажурирају и проширују. Component-Based design: React је у стању да ефикасно управља динамичким променама садржаја и ажурирањима у реалном времену, чинећи једноставно и занимљиво корисничко искуство. Real-Time Updates: Improved User Experience: Савремене библиотеке корисничког интерфејса: Реацт добро ради са савременим библиотекама корисничког интерфејса и оквирима (као што су Материал-УИ и Ант Дизајн), омогућавајући програмерима да дизајнирају естетски пријатне и интуитивне корисничке интерфејсе. Изградња прилагодљивих и прилагодљивих корисничких интерфејса (УИ) који ефикасно функционишу на различитим уређајима и величинама екрана је једноставна помоћу Реацта. 5. SEO-Friendly SEO-Prijateljski Better Optimization for Search Engines: Server-Side Rendering (SSR): Pre-rendering HTML sadržaja pomoću PHP pre pružanja klijenta garantuje bolje indeksiranje pretraživača i SEO. Meta tagovi i dinamički materijal: Koristeći informacije iz PHP backend-a, React može dinamično da upravlja i ažurira meta tagove, naslove i drugi SEO-relevantni materijal. Better Crawlability: Static Site Generation (SSG): React može da proizvede statične stranice u vreme izgradnje, poboljšavajući SEO aplikacije dok zadržava PHP za dinamički sadržaj, koristeći rešenja kao što je Next.js, koji podržava i SSR i SSG. Struktura URL-a: React može da rukuje usmeravanjem i navigacijom, osiguravajući da posetioci i pretraživači lako mogu da istraže sajt, dok PHP može da upravlja jasnim, SEO-prijateljskim strukturama URL-a. Развијачи могу изградити робусне, скалабилне и перформанси оптимизоване онлине апликације са богатим корисничким искуствима и оптимизацијом претраживача интегрисањем ПХП-а са Реацтом. Creating a PHP and React Development Environment Креирање ПХП и Реацт развојног окружења У овом тренутку, спремни смо да покренемо стварни пројекат који користи React.js и PHP као предњи крај. Prerequisites Предуслови Постоје ствари које требате знати као програмер, или ствари које морате имати, да бисте могли да учините ПХП рад као бацкенд са Реацт. Imate osnovno poznavanje PHP Сазнајте више о React.js Уверите се да је Node.js, праћен npm, инсталиран на вашем рачунару. Имајте ПХП инсталиран на вашем систему, било Апацхе или Нгинк Step By Step Process On How To Use PHP As A Backend Using React As A Front-end Корак по корак процес о томе како користити ПХП као бацкенд користећи Реацт као фронт-енд Корак за коришћење ПХП-а као бацкенда уз Реацт је прилично једноставан, и то је следеће. Building The Frontend Отворите свој терминал и покрените следећу команду: Step 1: npx create-react-app my-react-app Напомена: пре него што покренете ову команду, морате да ЦД у директоријум где желите да ваш Реацт фасцикле да буде! cd Documents Након тога, чекаћете да се креира ваша Реацт апликација. Pređite u fasciklu projekta. Projekat koji ste upravo kreirali mora da se poseti u terminalu. Step 2: cd my-react-app Покрените сервер за развој: Step 3: npm start Building the PHP Backend Време је да изградите ПХП бацкенд сада када је ваша Реацт апликација оперативна: Креирајте нову фасциклу за своје ПХП датотеке у директоријуму апликације Реацт. Да бисте то постигли, покрените следећу команду на вашем терминалу. Step 1: mkdir php_backend Покретањем ове команде видећете фасциклу која се зове php_backend. Унутар фасцикле php-backend, креирајте датотеку са именом Напомена: Можете га назвати било којим именом. У мом случају, одлучио сам да користим . Step 2: index.php index.php У о Можете почети да дефинишете своје ПХП крајње тачке и логику. Ako ste PHP programer, bićete upoznati sa ovom sintaksom. 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"; } ?> Сада, следећа ствар коју треба да урадите је да одете на Реацт Цоде који сте креирали раније и отворите фасциклу у уређивачу кода. , и додајте ову синтаксу испод. 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; Напомена: Шта омогућава ПХП да ради је Погледајте код испод.Видећете како смо га користили! Axios U javnoj fascikli vašeg projekta, videćete У тој датотеци, додао сам Боотстрап ЦДН као оквир који користим. index.html <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@4.6.2/dist/css/bootstrap.min.css"> Evo malo stila. .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); } } Након што покушате све ово, ево погледа које ћете видети. Ево базе података која контролише бацкенд.Када попуните текст и кликнете на Сачувај, текст ће се аутоматски приказати у бази података. Posle toga sam napisao и кликнуо сам на претраживање, у горњем десном углу слике испод.Када видите ово, знајте да сте урадили праву ствар. Freddie То је корак који сам користио у Реацту и ПХП-у у једној апликацији. Conclusion Закључак У закључку, интеграција ПХП-а као бацкенда са Реацт-ом као фронтендом нуди робусно и разноврсно решење за савремени развој веб апликација. Као што је већ поменуто, ова комбинација користи предности ПХП-ових могућности на страни сервера и Реацт-ове динамичне, архитектуре засноване на компонентама за креирање скалабилних, високих перформанси апликација.ПХП ефикасно управља логиком на страни сервера, интеракцијама базе података и стварањем АПИ-а, док Реацт осигурава богат, реагујући кориснички интерфејс и беспрекорно руковање подацима. Ова синергија између ПХП-а и Реацт-а не само да побољшава процес развоја, већ и резултира веб апликацијама које су интерактивне, ангажоване и оптимизоване. Надам се да сте нашли овај туториал невероватно вриједан! до следећег пута, збогом. About The Author O autoru Full-stack Laravel програмер ima Године искуства у развоју софтвера. Он је развио пуне вештине комбиновањем развоја софтвера, писања и упућивања других у ономе што ради. Emmanuel Okolie 4+ Његове стазе укључују , , , Као фрееланцер, он ствара веб странице за клијенте и пише техничке водиче како би показао људима како да раде оно што ради. ReactJS Laravel PHP JavaScript Ako im se pruži prilika, voleo bih da pričam s tobom. molim te idi i prati ga na njegovom на Фејсбуку, , , и . Emmanuel Okolie Веб сајт GitHub Линкејн Твитер