Skip to content

Extending Fresns


Fresns is minimalistic, but it's also highly extensible. In fact, most of the features that ship with Fresns are actually extensions!

This approach makes Fresns extremely customizable. A user can disable any features they don't use on their forum, and install other extensions to make a forum perfect for their community.

In order to achieve this extensibility, Fresns has been built with rich APIs and extension points. With some programming knowledge, you can leverage these APIs to add just about any feature you want. This section of the documentation aims to teach you how Fresns works, and how to use the APIs so that you can build your own extensions.

Extending Type

Function Plugins: Enhance and enrich the extension of main program functions, such as extending a channel, customizing registration process or editor, and enhancing management functions, content security check, and control panel.

Client: Application developed based on the main program API can be independent websites, APPs, WeChat mini programs, fast applications and other forms. If the API of the main program does not meet the requirements, you can install or develop extension plug-ins to add APIs, or manage the equivalent configuration of client applications.

Directory Structure

Fresns main program is a social network service software based on PHP Laravel framework and relational database.

fresns/         // Main Program Root Directory
├── app/
   ├── Console/
   ├── Exceptions/
   ├── Http/
   ├── Models/
   ├── Helpers/
   ├── Utilities/
   ├── Providers/
   └── Fresns/
       ├── Install/
       ├── Panel/
       ├── Words/
       ├── Subscribe/
       └── Api/
├── bootstrap/
├── config/
├── database/
├── plugins/
├── public/
   ├── assets/
   ├── static/
   ├── index.php
   ├── status.json
   ├── favicon.ico
   └── robots.txt
├── resources/
   ├── css/
   ├── js/
   ├── lang/
   └── views/
├── storage/
├── tests/
├── .env.example
├── artisan
├── compose.json
├── fresns.json
├── install.lock
├── package.json
├── vite.config.js
├── phpunit.xml

Composer Packages

Composer packages require for fresns.

DTOFresns data transfer object extension package for easy generation of data rules and inspection of transfer data. Works with Laravel projects.
Cmd Word ManagerCommand word manager helps plugins to communicate with each other easily.
Plugin ManagerDevelopment and operation of plugins: install, enable, disable, uninstall.

Contact Us

Released under the Apache-2.0 License