Обновление 1.1.0: бета!

Версия 1.1.0 — фреймворк Вебасист выходит из статуса альфа-версии!

Основа фреймворка полностью сформирована. Значительных переделок ядра и частей фреймворка, на которых строятся разработка приложений и создание сайтов, более не планируется. Все обновления теперь сопровождаются подробными ченджлогами, которые можно посмотреть непосредственно в Инсталлере перед установкой.

Фреймворк будет находиться в статусе бета-версии еще некоторое время, пока мы внедряем новый полезный системный функционал (например, API для доступа к данным приложений) и разрабатываем некоторые прикладные приложения: новый Shop-Script и связанные с ним полезные приложения «Рассылки», «Поддержка», «Календарь», онлайн-CRM и пр.

Новое в версии 1.1.0:

  1. db.php вместо app.sql



    Ранее для описания таблиц приложения нужно было создавать файл lib/config/app.sql, в котором, по сути, находился MySQL-дамп структуры таблиц. Этот файл автоматически разбирался при установке приложения, чтобы создать необходимые таблицы, а так же при удалении приложений, чтобы удалить уже ненужные таблицы.

    У такого подхода было несколько минусов:
    — Жесткая привязка к MySQL
    — Нужно явно указывать Engine для MySQL. Поскольку фреймворк можно устанавливать на большинство хостингов, то до сих пор использовались только таблицы MyISAM, т.к. InnoDB до сих пор поддерживается не везде. А это значит, что не было возможности пользоваться внешними ключами и транзакциями
    — Нет возможности указать связи между таблицами

    Для решения этих проблем мы заменили формат, в котором задается структура таблиц приложения, и вместо lib/config/app.sql теперь используется lib/config/db.php

    Было:
    wa-apps/guestbook2/lib/config/app.sql

    DROP TABLE IF EXISTS `guestbook2`;
    CREATE TABLE IF NOT EXISTS `guestbook2` (
      `id` int(11) NOT NULL AUTO_INCREMENT,
      `contact_id` int(11) NOT NULL DEFAULT '0',
      `name` varchar(255) NOT NULL DEFAULT '',
      `text` text NOT NULL,
      `datetime` datetime NOT NULL,
      PRIMARY KEY (`id`),
      KEY `datetime` (`datetime`)
    ) ENGINE=MyISAM  DEFAULT CHARSET=utf8;
    
    Стало:
    wa-apps/guestbook2/lib/config/db.php

    <?php
    return array(
        'guestbook2' => array(
            'id' => array('int', 11, 'null' => 0, 'autoincrement' => 1),
            'contact_id' => array('int', 11, 'null' => 0, 'default' => '0'),
            'name' => array('varchar', 255, 'null' => 0, 'default' => ''),
            'text' => array('text', 'null' => 0),
            'datetime' => array('datetime', 'null' => 0),
            ':keys' => array(
                'PRIMARY' => 'id',
                'datetime' => 'datetime',
            ),
        ),
      );
    

    В текущей версии поддержка файла app.sql: если файла db.php нет, то при установке или удалении приложения будет использоваться файл app.sql. Однако мы настоятельно рекомендуем разработчикам приложения перевести приложения на обновленную схему db.php. Подробнее в документации.

  2. Обновление jQuery (добавлена 1.8.2, удалены все устаревшие версии), Smarty (3.1.12), Swift Mailer (4.2.1).
  3. Приложения «Блог», «Фото», «Стикеры», «Списки дел», «Контакты»: файлы db.php с описанием структуры таблиц приложений, а также исправления незначительных ошибок.