quidphp/react
Composer 安装命令:
composer create-project quidphp/react
包简介
Create a new project using QuidPHP, LemurCMS and React
README 文档
README
About
QuidPHP/React repository contains the necessary structure to create a new project using QuidPHP, LemurCMS and React.
License
QuidPHP/React is available as an open-source software under the MIT license.
Documentation
QuidPHP/React documentation is available at QuidPHP/Docs.
Installation
QuidPHP/React can be easily installed with Composer. It is available on Packagist.
$ composer create-project quidphp/react --prefer-dist
Requirement
QuidPHP/React requires the following:
- Apache or Nginx server (running on MacOs or Linux environment).
- Works in Windows environment but there are known issues.
- PHP 8.1
- with these extensions:
- ctype
- curl
- date
- fileinfo
- gd
- iconv
- json
- mbstring
- pcre
- openssl
- session
- SimpleXML
- zip
- PDO
- pdo_mysql
- and these PHP INI directives
- post_max_size must be at least 1MB
- post_max_size must be larger than upload_max_filesize
- memory_limit must be at least 128MB
- with these extensions:
- Mysql (>= 8.0) or MariaDB (>= 10.4) database
- NodeJs LTS version (>= 16)
- Any modern browser (not Internet Explorer)
Dependency
QuidPHP/Assert has the following dependencies:
- quidphp/site - Quid\Site - Extended platform to build a website using the QuidPHP framework and LemurCMS
- quidphp/navigation - Javascript module for navigating a website without reloading
- facebook/react - A declarative, efficient, and flexible JavaScript library for building user interfaces.
- facebook/react-dom - This package serves as the entry point to the DOM and server renderers for React.
- laravel-mix/laravel-mix - The power of webpack, distilled for the rest of us
- scottcharlesworth/laravel-mix-polyfill - Quid\Main - A Laravel Mix extension to include polyfills by using Babel, core-js, and regenerator-runtime
- sass/dart-sass - The reference implementation of Sass, written in Dart.
- webpack-contrib/sass-loader - Compiles Sass to CSS
- shakacode/sass-resources-loader - SASS resources (e.g. variables, mixins etc.) loader for Webpack.
- bholloway/resolve-url-loader - Webpack loader that resolves relative paths in url() statements based on the original source file
- @babel/preset-react - Babel preset for React
- pmmmwh/react-refresh-webpack-plugin - A Webpack plugin to enable "Fast Refresh" for React components.
All dependencies will be resolved by using the Composer installation process.
Setup
Once the installation is complete, simply follow these steps:
- Make sure the storage and public folders are writable by your web server. For storage also make sure all subdirectories are writable.
- Configure an Apache Virtual Host or Nginx Server Block in order to have a domain pointing to the public folder document root.
- Import db.sql within a new Mysql/MariaDB database.
- Duplicate the env-default.php file and rename it to env.php.
- Update the scheme hosts within the env.php file. You will need to set a different host (domain or subdomain) for the application and the CMS.
- Update the database parameters within the env.php file.
- Not required, but you are encouraged to change the namespace of all PHP classes within the src folder. The default namespace is Project.
Booting via Webpack/HTTP
Open the project folder in the Command Line. To start the development server with hot module reload (HMR) write:
npm run hot
Your application will be reachable at the defined host within your env.php file. A second Node server is also started to serve the HMR requests (defaults to localhost on port 8079). You may need to accept the self-signed certificate for that localhost.
Webpack production build
To generate the production build for the React application, open the project folder in the Command Line and write:
npm run prod
QuidPHP CLI routes
Open the project folder in the Command Line. You may now submit a command in the following format:
php quid [path][:envType] exemple: php quid /en/my-url php quid /en/my-url:dev/cms php quid /:prod/app
LemurCMS credentials
Once you open the CMS within your browser, you will need to login. The default user is:
- Username: admin
- Password: changeme123
Once you are logged in, you will be able to change the password for the user and create new users.
Overview
QuidPHP/Project contains 31 files. Here is an overview:
- .gitignore - Standard .gitignore file for the project
- composer.json - File declaring all Composer PHP dependencies
- db.sql - Minimal database structure required
- env-default.php - Declare environment data for the application, copy this file and rename to env.php
- LICENSE - MIT License file for the repository
- package.json - File declaring all NPM dependencies
- quid - File for booting the application and Cms via CLI
- README.md - This readme file in markdown format
- webpack.mix.js - Configuration file for laravel-mix
- storage/public/favicon.ico - Generic favicon (16x16), this will be symlinked to public/favicon.ico.
- public/.htaccess - Simple apache directive file, requires mod_rewrite
- public/index.php - Index file for booting the application and Cms via an HTTP request
- src/Boot.php - Class for booting the application and CMS
- src/Route.php - Abstract class for a route, all routes will extend this class
- src/Row.php - Abstract class for a row, all rows will extend this class
- src/Session.php - Class used to represent the active session
- src/App/_template.php - Trait used by all routes which generate an interface
- src/App/Error.php - Class for the error route of the app
- src/App/Home.php - Class for the home route of the app
- src/Row/User.php - Class for a row of the user table
- src/Service/React.php - Class related to React and the loading of front-end assets
- app/app.jsx - Root component which loads the correct route
- app/app.scss - Main scss stylesheet for the app
- app/global.js - Script which declares some global variables
- app/index.js - Entry file for the react application
- app/component/HelloWorld.jsx - Component for a hello world in a h1 tag
- app/component/HelloWorld.module.scss - SCSS module file for the hello world component
- app/interface/Layout.jsx - Component for the common page layout
- app/interface/Layout.scss - Stylesheet for the common page layout
- app/route/Error.jsx - Component for the error route
- app/route/Home.jsx - Component for the home route
Known issues
- On Windows, there are some problems related to creating symlinks.
- On Windows, you will need to add lower_case_table_names = 2 in your database configuration file (my.cnf). The table and column names need to be stored in their natural case.
Testing
QuidPHP testsuite can be run by creating a new QuidPHP/Assert project.
quidphp/react 适用场景与选型建议
quidphp/react 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 2 次下载、GitHub Stars 达 2, 最近一次更新时间为 2022 年 05 月 22 日, 在 PHP 生态内属于活跃度较高的组件。
它主要适用于以下技术方向: 「framework」 「cms」 「react」 「quid」 「quidphp」 「lemur」 等业务场景。在实际项目中,围绕这些方向常见需要落地的问题包括:接口对接、性能调优、并发安全、与既有框架(Laravel / ThinkPHP / Yii / Webman 等)的兼容适配,以及生产环境的日志埋点与稳定性保障。
我们在过去多个企业项目中使用过 quidphp/react 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。
基于 quidphp/react 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。
线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。
承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。
与 quidphp/react 相关的其它包
同方向 / 同关键字的高下载量 PHP Composer 包推荐,方便对比选型:
PHP Framework HLEB2 is the foundation of the web application. Provides ease of development and application performance.
Async Reactive Postgres Driver for PHP (Non-blocking)
GraphQL authentication for your headless Craft CMS applications.
Set Links with a specific language parameter
Supercharged text field validation.
Integrate with Snipcart.
统计信息
- 总下载量: 2
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 2
- 点击次数: 0
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2022-05-22