Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/getpop/site
[READ ONLY] Create a component-based website
https://github.com/getpop/site
pop site-builder website
Last synced: 19 days ago
JSON representation
[READ ONLY] Create a component-based website
- Host: GitHub
- URL: https://github.com/getpop/site
- Owner: getpop
- License: gpl-2.0
- Created: 2019-08-19T05:30:38.000Z (over 5 years ago)
- Default Branch: master
- Last Pushed: 2023-09-07T09:27:26.000Z (over 1 year ago)
- Last Synced: 2024-12-30T14:32:58.432Z (28 days ago)
- Topics: pop, site-builder, website
- Language: PHP
- Size: 170 KB
- Stars: 2
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE.md
Awesome Lists containing this project
README
# Site
Create a component-based website
## Install
Via Composer
``` bash
composer require getpop/site
```## Development
The source code is hosted on the [GatoGraphQL monorepo](https://github.com/GatoGraphQL/GatoGraphQL), under [`SiteBuilder/packages/site`](https://github.com/GatoGraphQL/GatoGraphQL/tree/master/layers/SiteBuilder/packages/site).
## Usage
Initialize the component:
``` php
\PoP\Root\App::stockAndInitializeModuleClasses([([
\PoP\Site\Module::class,
]);
```## Architecture foundations
Layouts are rendered through custom-built reactivity, based on observing a unique JavaScript object (which contains database and configuration data).
The view is implemented through [Handlebars](https://handlebarsjs.com/) templates, which can be loaded both in the client (through the Handlebars runtime) and in the server (through PHP library [LightnCandy](https://github.com/zordius/lightncandy)). This approach is isomorphic: the same code works on both environments.
Implementation coming soon.
## Main Concepts
### Rendering through JavaScript templates
Will be added soon...
### Isomorphic Server-Side Rendering
Will be added soon...
### Reactivity
Will be added soon...
## Architecture Design and Implementation
#### Dataloading
#### Dataloading Modules
### Handlebars
Will be added soon...
### LightnCandy
Will be added soon...
### Code Splitting
Will be added soon...
### Progressive-Web App
Will be added soon...
### Single-Page Application
Will be added soon...
### Content CDN
Will be added soon...
### A/B Testing
Will be added soon...
### Form Input Modules
Will be added soon...
### Client-side Rendering
Will be added soon...
### JavaScript templates through Handlebars
Will be added soon...
### Executing JavaScript functions
Will be added soon...
### Resources
Will be added soon...
### Asset-bundling
Will be added soon...
### Progressive Booting
Will be added soon...
### Links in body
Will be added soon...
### State Management
Will be added soon...
### Data Cache, Configuration Cache and Replication
Will be added soon...
### Reactivity
Will be added soon...
## Server-Side Rendering
Will be added soon...
### Isomorphism
Will be added soon...
### JavaScript templates into PHP through LightnCandy
Will be added soon...
### Rendering a Webpage as a Transactional Email
Will be added soon...
## PHP versions
Requirements:
- PHP 8.1+ for development
- PHP 7.2+ for production### Supported PHP features
Check the list of [Supported PHP features in `GatoGraphQL/GatoGraphQL`](https://github.com/GatoGraphQL/GatoGraphQL/blob/master/docs/supported-php-features.md)
### Preview downgrade to PHP 7.2
Via [Rector](https://github.com/rectorphp/rector) (dry-run mode):
```bash
composer preview-code-downgrade
```## Standards
[PSR-1](https://www.php-fig.org/psr/psr-1), [PSR-4](https://www.php-fig.org/psr/psr-4) and [PSR-12](https://www.php-fig.org/psr/psr-12).
To check the coding standards via [PHP CodeSniffer](https://github.com/squizlabs/PHP_CodeSniffer), run:
``` bash
composer check-style
```To automatically fix issues, run:
``` bash
composer fix-style
```## Change log
Please see [CHANGELOG](CHANGELOG.md) for more information on what has changed recently.
## Testing
To execute [PHPUnit](https://phpunit.de/), run:
``` bash
composer test
```## Static Analysis
To execute [PHPStan](https://github.com/phpstan/phpstan), run:
``` bash
composer analyse
```## Report issues
To report a bug or request a new feature please do it on the [GatoGraphQL monorepo issue tracker](https://github.com/GatoGraphQL/GatoGraphQL/issues).
## Contributing
We welcome contributions for this package on the [GatoGraphQL monorepo](https://github.com/GatoGraphQL/GatoGraphQL) (where the source code for this package is hosted).
Please see [CONTRIBUTING](CONTRIBUTING.md) and [CODE_OF_CONDUCT](CODE_OF_CONDUCT.md) for details.
## Security
If you discover any security related issues, please email [email protected] instead of using the issue tracker.
## Credits
- [Leonardo Losoviz][link-author]
- [All Contributors][link-contributors]## License
GNU General Public License v2 (or later). Please see [License File](LICENSE.md) for more information.
[ico-version]: https://img.shields.io/packagist/v/getpop/site.svg?style=flat-square
[ico-license]: https://img.shields.io/badge/license-GPLv2-brightgreen.svg?style=flat-square
[ico-travis]: https://img.shields.io/travis/getpop/site/master.svg?style=flat-square
[ico-scrutinizer]: https://img.shields.io/scrutinizer/coverage/g/getpop/site.svg?style=flat-square
[ico-code-quality]: https://img.shields.io/scrutinizer/g/getpop/site.svg?style=flat-square
[ico-downloads]: https://img.shields.io/packagist/dt/getpop/site.svg?style=flat-square[link-packagist]: https://packagist.org/packages/getpop/site
[link-travis]: https://travis-ci.org/getpop/site
[link-scrutinizer]: https://scrutinizer-ci.com/g/getpop/site/code-structure
[link-code-quality]: https://scrutinizer-ci.com/g/getpop/site
[link-downloads]: https://packagist.org/packages/getpop/site
[link-author]: https://github.com/leoloso
[link-contributors]: ../../../../../../contributors