schlaefer / saito
Saito - The Threaded Forum
Requires
- php: >=7.2
- aura/di: ^4.0
- cakephp/authentication: ^1.2
- cakephp/cakephp: 3.8.*
- cakephp/migrations: @stable
- cakephp/plugin-installer: *
- claviska/simpleimage: ^3.3
- davidyell/proffer: ^1.0
- embed/embed: ^3.3
- firebase/php-jwt: ^5.0
- friendsofcake/bootstrap-ui: dev-develop
- friendsofcake/search: ^4.4
- jbbcode/jbbcode: ~1.4
- josegonzalez/dotenv: *
- layershifter/tld-extract: ^2.0
- league/commonmark: ^1.0
- markstory/geshi: ^3
- mobiledetect/mobiledetectlib: 2.*
- siezi/cakephp-simple-captcha: *
- suin/php-rss-writer: ^1.6
- yzalis/identicon: *
Requires (Dev)
- cakephp/bake: ~1.0
- cakephp/cakephp-codesniffer: ^3.0
- cakephp/debug_kit: ^3.19
- phing/phing: ^2.16
- phpstan/phpstan: ^0.11.8
- phpunit/phpunit: ~6
- psy/psysh: @stable
- squizlabs/php_codesniffer: *
- symfony/css-selector: *
- symfony/dom-crawler: *
Suggests
- cakephp/cakephp-codesniffer: Allows to check the code against the coding standards used in CakePHP.
This package is auto-updated.
Last update: 2024-10-20 21:23:10 UTC
README
What is it?
Saito is a web-forum with conversation threading. It is different from the majority of other forums as it puts the emphasis on performance and presenting conversations in a classic tree-style threaded view.
A lot of optimization went into serving long existing, small- to mid-sized communities with moderate traffic but hundreds of thousands of existing postings. It is able to displays hundreds of individual postings on a single page while running on a inexpensive, shared hosting account.
Test it here (login: test/test).
Status
Requirements
- PHP 7.2+ (extensions: gd, exif, intl, mbstring, pdo, simplexml)
- Database (MySQL/MariaDB tested, others untested).
Get Started
A ready-to-use ZIP containing all necessary files is available on the release page. Unzip it, upload it to your server, open it in a browser, and follow the instructions on the screen.
Development
Set-Up Environment
You need a more or less generic environement providing:
- PHP with
composer
for the server-backend (mainly build on CakePHP) - node with
yarn
andgrunt-cli
for the browser-frontend (mainly build on Marionette) - a database
There's a docker file for development in dev/docker/…
Install Files
Checkout the files from git-repository and install the dependencies:
composer install; yarn install;
Move dependency-assets into the right places:
grunt dev-setup
Run all test cases:
composer test-all
See the Gruntfile
, packages.json
and composer.json
for additional devleopment-commands.
Create Production Files
To generate all the minimized assets for production:
grunt release
Create A Release Zip
To generate a zip-package as found on the release page for distribution:
vendor/bin/phing
FAQ
How does it compare to mylittleforum
Actually this forum was written to replace a mylittleforum installation with a more modern approach. Mylittleforum is a noteworthy starting place if you want a threaded web-forum. There aren't that many out there. Mylittleforum exists for many years now and offers great features.
Disclaimer: Subjective opinion ahead…
But there are a shortcommings, mainly: performance and maintainability. If a mylittleforum installation reaches a few hundred thousand postings it is going to slow down. Also it was written when PHP was a much worse language: there are no test cases, which makes it more fragile to changes.