Обновление 1.1.0: бета!
22 октября 2012Версия 1.1.0 — фреймворк Вебасист выходит из статуса альфа-версии!
Основа фреймворка полностью сформирована. Значительных переделок ядра и частей фреймворка, на которых строятся разработка приложений и создание сайтов, более не планируется. Все обновления теперь сопровождаются подробными ченджлогами, которые можно посмотреть непосредственно в Инсталлере перед установкой.
Фреймворк будет находиться в статусе бета-версии еще некоторое время, пока мы внедряем новый полезный системный функционал (например, API для доступа к данным приложений) и разрабатываем некоторые прикладные приложения: новый Shop-Script и связанные с ним полезные приложения «Рассылки», «Поддержка», «Календарь», онлайн-CRM и пр.
Новое в версии 1.1.0:
-
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. Подробнее в документации.
- Обновление jQuery (добавлена 1.8.2, удалены все устаревшие версии), Smarty (3.1.12), Swift Mailer (4.2.1).
- Приложения «Блог», «Фото», «Стикеры», «Списки дел», «Контакты»: файлы db.php с описанием структуры таблиц приложений, а также исправления незначительных ошибок.
18 комментариев
на гитхабе уже закончилось обновление или еще подождать? откат jQuery на 1.7 в бэкенде - это так и должно быть?
ответитьНа Гитхабе все в полном соответствии со скачиваемой версии на сайте. История коммитов: https://github.com/webasyst/webasyst-framework/commits/
ответитьда я к тому, что коммиты продолжались уже после публикования этой новости.
ответитьЭто были небольшие исправления маргинальных случаев, которые обнаружились после первой выгрузки. Сейчас все ок.
ответитьскачал, установил, добавил запись в блог. итоги:
ответить- при наборе текста в визивиге автоматически пропадают пробелы, приходится ручками их обратно добавлять.
- при просмотре страницы блогов при клике на заголовок вся страница прыгает вверх, клика не происходит (вероятно это особенность дефолтной темы)
- после добавления записи ссылка на неё какая-то неправильная, ссылается на 404.
полторы минуты видео - http://youtu.be/Mep6c4Ii3_Q , все вышеописанное. установка сугубо дефолтная.
По поводу 404, исправили. Неправильно создавались первые поселения приложений. Откройте wa-config/routing.php и добавьте там для 'url' в конце *, например для блога должно быть 'url' => 'blog/*'
ответитьПо поводу пропадающих пробелов - у нас не воспроизводится ни в одном браузере. Если не сложно, то попробуйте в другом браузере, ну и напишите в каком браузере у вас есть этот баг. И стоят ли в нём какие-то хитрые дополнения?
если лучше поздно, чем никогда, то пробелы пропадают в Opera 12.02 (build 1578).
ответитьв эксплорере 9-ом все ок, в хроме тоже.
Скажите пожалуйста, будете ли Вы разрабатывать в рамках нового фреймворка ERP систему?
ответитьERP и иже с ними CRM, PM, HR, CIS, OA, HD, ... и прочие системы будут разрабатываться не сами по себе как отдельно стоящие продукты, а как РЕШЕНИЯ, основанные на приложениях Вебасит. Иными словами, некая совокупность приложений Вебасист будет образовывать ту или иную систему, необходимую для группы/компании/предприятия. Этот концепт решений-основанных-на-приложениях-Вебасист будет активно пропагандироваться и развиваться по мере выхода новых приложений на основе фреймворка Вебасист.
ответитьНикита, спасибо за этот вопрос!
Когда ждать обновление документации?
ответитьДокументация будет обновляться постепенно статья за статьей. Жестких сроков не устанавливается, однако, будем стараться держать высокий темп обновления статей. О ключевых изменениях будем писать здесь же в блоге.
ответитьКогда ждать выход Shop-Script? Хоть примерно?
ответитьк концу года, к весне, к осени, в конце года 100% и так по кругу
ответитьНовый Shop-Script будет представлен в конце 2012 года.
ответитьhttp://www.webasyst.com/ru/webasystnet/
В настройках маршрутизации сайта, если вместо приложения указать перенаправление на другой URL, то после этого нет возможности удалить данное правило и изменить его через интерфейс настройки
ответитьСпасибо. Исправим.
ответитьДобрый день! В связи с изменением алгоритма добавления таблиц (apps.sql=>db.php), просьба подсказать, как реализовалось код ниже, при первом добавлении таблиц в БД
ответитьINSERT INTO `cms_main_page` (`id`, `text`) VALUES
(1, 'Тут текст для главной страницы');
Это лучше делать в install.php (создайте файл wa-apps/APP_ID/lib/config/install.php)
ответить<?php
$model = new waModel();
$model->exec($sql);