Skip to content
On this page

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.

Engine: The website functions developed based on the main program API include integrated engine and independent engine respectively. An independent engine is similar to an independent website, which is deployed and run independently outside the main program, and is tantamount to a mobile application. Based on independent deployment, a set of data can be run in different functional forms, and the purpose of differentiated operation can be achieved.

Theme: The front-end interface attached to the website engine, and the UE&UI interface developed according to the template standard of the selected engine.

App: Mobile applications 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 mobile applications. Therefore, mobile applications may develop a plug-in and install it on the “Mobile Applications” channel of the console to enhance the functions and management of the mobile terminal.

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/
├── extensions/
│   ├── plugins/
│   ├── themes/
│   └── backups/
├── public/
│   ├── assets/
│   │   ├── plugins/
│   │   └── themes/
│   ├── static/
│   ├── index.php
│   ├── favicon.Icon
│   └── robots.txt
├── resources/
│   ├── css/
│   ├── js/
│   ├── lang/
│   └── views/
├── storage/
├── tests/
├── .env.example
├── artisan
├── compose.json
├── fresns.json
├── install.lock
├── package.json
├── webpack.mix.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.
Theme ManagerTheme development and management: install, edit, uninstall.
Market ManagerDownload and upgrade apps from the app marketplace, manage app accessions and upgrade updates.

Contact Us

Released under the Apache-2.0 License