PhpDev.App
alexander-torosh/yona-cms

alexander-torosh/yona-cms

Stars: 368

Forks: 112

Pull Requests: 58

Issues: 49

Watchers: 60

Last Updated: 2021-08-31 13:18:44

CMS based on Phalcon PHP Framework with modular structure

License: Other

Languages: PHP, Volt, HTML, CSS, JavaScript

http://yonacms.com/

Yona CMS

Build Status Scrutinizer Code Quality

Yona CMS - open source content management system (CMS). Written in Phalcon PHP Framework (version 3.x supported)

Has a convenient modular structure. Has simple configuration and architecture. Can be easily modified for any task with any loads.

Project website

New Modern Yona CMS 2 with Phalcon 4.0 and PHP 7.3

Check ongoing development process in the branch v2.0.0

PHP 7 support, Docker

For using complete Docker stack check this branch php7.0

Installation

Composer

Run

composer create-project oleksandr-torosh/yona-cms -s dev

Or create composer.json file and install dependencies:

{  
    "require": {  
        "oleksandr-torosh/yona-cms": "dev-master"  
    }  
}
composer install

After some time, do not forget run composer update for update dependencies:

composer update

Composer is required. It will install required libraries. If you have error with autoload.php file, the reason - missed composer update installation step.

How to install Composer

Permissions

chmod a+w data -R
chmod a+w public/assets -R
chmod a+w public/img -R
chmod a+w public/robots.txt

Nginx

Example of configuration for php-fpm + nginx. Parameter APPLICATION_ENV has value “development”. Don’t forget remove it on production server.

server {

    listen   80;
    server_name yona-cms.dev;

    index index.php;
    set $root_path '/var/www/yona-cms/public';
    root $root_path;

    try_files $uri $uri/ @rewrite;

    location @rewrite {
        rewrite ^/(.*)$ /index.php?_url=/$1;
    }

    location ~ \.php {
        fastcgi_pass unix:/var/run/php5-fpm.sock;
        # fastcgi_pass 127.0.0.1:9000;

        fastcgi_index index.php;

        include /etc/nginx/fastcgi_params;

        fastcgi_split_path_info       ^(.+\.php)(/.+)$;
        fastcgi_param PATH_INFO       $fastcgi_path_info;
        fastcgi_param APPLICATION_ENV "development";
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    }

    location ~* ^/(css|img|js|flv|swf|download)/(.+)$ {
        root $root_path;
    }

    location ~ /\.ht {
        deny all;
    }

}

Apache

.htaccess file are ready configured

Admin dashboard

Open http://yona-cms/admin and auth:

  • login: yona
  • password: yonacmsphalcon

Change admin user password and delete yona user.

Database

Edit /app/config/environment/development.php and setup database connection. Import MySQL dump file yona-cms.sql

Phinx migrations

https://phinx.org/ Library for creation, executing and rollback migrations

Creation migration class in /data/migrations

php vendor/bin/phinx create NewMigrationName

Status

php vendor/bin/phinx -e development status

Executing new migrations

php vendor/bin/phinx -e development migrate

Rollback

php vendor/bin/phinx -e development rollback

You can set default environment for your localhost user

sudo nano ~/.bashrc

Add line

export PHINX_ENVIRONMENT=development

Features

  • Yona CMS saves a lot of time in starting necessary basic functionality for any project
  • The modular structure with a convenient hierarchy that is based on namespaces
  • Each module can serve as a separate independent component. Have its own routes, helpers, css, js assets
  • Multi-lingual. Manage an unlimited number of languages and translations directly from admin
  • Yona CMS is really fast!

Current version and updates in CHANGELOG.md

Requirements

  • php 5.6+
  • phalcon 3.0.0+
  • mysql
  • php-intl
  • apache (+mod_rewrite) or nginx