Категорія: Fusebox
Зміна платформи Mura CMS 5.2
Сьогодні з'явилося оновлення для популярної CMS, що включає ряд значних покращень, як в інтерфейсній частині, так і в коді.
Найбільш цікавим фактом є те, що розробники вирішили позбутися фреймворку Fusebox та поступово переходити на FW/1, за їх словами "задля кращої швидкодії". Почали вони це робити з панелі адміністратора.
Повний список оновлень можна дізнатися з повідомлення в блозі проекту: Mura CMS version 5.2 is live!
Новини CF-OpenSource v10
Оновлення продуктів та додатків на RIAForge
Новий MVC фреймворк.
Компонента, що за допомогою jTidy ковертує текст до валідного xHTML.
Двигунець для створення прототипів, що реалізує принципи scaffolding.
Компонента для безпосередньої взаємодії з SQLite базою без участі JDBC, реалізує стандартні операції, вміє зберігати набір CF даних безпосередньо в таблицю SQLite.
Додаток для експорту мета-даних компоненти до XML-файлу, що може бути імпортований до редактора UML.
Додаток для пошуку зайвих CFM-файлів в директоріях проекту. Навряд чи буде корисним у випадку використання фреймворків, бо базується на пошуку безпосередніх підключень (cfinclude) сторінок.
Втілення API рекомендаційного сервісу Yelp.
Втілення механізму ітератора для складних типів даних.
Втілення API сервісу хостингу онлайн-відео Brightcove.
Втілення складної структури даних: зв'язаний список.
Бібліотека для інтернаціоналізації додатків, потребує CF9.
Вельми корисна бібліотека, що дозволяє не зациклюватися на XML як форматі для обміну даними, але й підтримувати вже існуючі складні текстові формати (як EDI чи VCF4).
Бібліотека, що реалізує базові операції з малюнками.
Smartermail API wrapper + UI 1.0
Втілення API програмного комплексу Smartermail.
Кілька нових додатків для Mango
Розширення для вбудови пошуку блогу в пошукове вікно оглядача.
Додає вказаний віджет до сайту, щоб читачі могли швидко перекладати вміст за допомогою перекладача Google.
Додає блок зі швидкими посиланнями на популярні соціальні веб-сайти, наприклад Facebook чи Twitter.
Дозволяє надсилати листи з блогу (наприклад, сповіщення про коментарі) через SMTP, що вимагають TLS/SSL з'єднання.
Реалізує включення малюнків з Twitpics в бічну панель блогу.
Різні оновлення та повідомлення
Розробники фреймворку Model-Glue опублікували тренувальний курс для новачків.
Mach-II Simplicity (1.8) RC2 Released
Черговий крок до випуску нової версії Mach-II
Ще один популярний продукт готується до випуску нової версії. Це додаток для підсвітки синтаксису від Джейсона Делмора, що використовується зокрема в BlogCFC.
Кілька оновлень отримав і додаток, що втілює scaffolding для Fusebox.
Implicit Blocks in Fusebox 5.5.1
Патч для Fusebox, що дозволяє обійтись без зайвих true міток, коли в if-блоці немає false.
Оновлено бібліотеку для захисту додатків від SQL-ін'єкцій та XSS атак.
Новини CF-OpenSource v8
Оновлення продуктів та додатків
Додаток для CF Builder, що дозволяє розробникам обмінюватися зразками коду безпосередньо з IDE.
Google Language Tools Extension 1.0
Додаток для CF Builder, що дозволяє перекладати частини коду на інші мови за допомогою перекладача Google.
Позиціонується як систем для незалежної від фреймворків розробки на CFML, фактично створюючи додатковий шар абстракції, коли з іншими додатками взаємодіють лише контролери.
Проста реалізація чату служби підтримки.
Amazon S3 Explorer & ColdBox Plugin 1.0
Реалізація взаємодії з сервісами Amazon S3 засобами CF, базується на фреймворкові ColdBox.
Додаток, що забезпечує взаємодію з програмно-апаратною платформою Arduino, використовує змішаний CF/Java код для взаємодії з сокетами.
Додаток на ранній стадії розробки, що планує реалізацію взаємодії з API Livestream, сервісу для публікації потокового аудіо та відео.
Реалізація whois на чистому CFML, позиціонується як заміна раніше популярного CFX_Whois.
Реалізація взаємодії з поштовим сервером на CFML. Поки в ранній стадії розробки (незважаючи на вказаний номер версії).
Різні новини та повідомлення
Mach-II Simplicity (1.8) is now GPLv3 with Classpath Exception. Woot!
Нова версія фреймворку буде розповсюджуватися під новою ліцензією.
New CodexWiki tracker and repository
Розробники повідомляють, що роботу поновлено та розповідають про деякі оновлення, зокрема про переїзд коду на хостинг Assembla та появу рахунку в Twitter.
New ColdBox repository homes and tools
Аналогічні попередньому записові події відбулися й з усим фреймворком ColdBox.
ColdBox 3.0.0 Beta 3 Revision Updates
Водночас готується реліз нової версії ColdBox, бета вже версію можна завантажити.
Galleon ColdFusion Forums 2.2.9
Реймонд Кемден повідомив про вихід оновленої версії форуму.
Fusebox XML Flowchart Generator
Незважаючи на погані новини зі стану розробників Fusebox, життя спільноти продовжується. Barney Boisvert повідомив про випуск генератора блок-схем для файлів конфігурації Fusebox (підтримується тільки XML синтаксис).
FuseNG -- ненароджене дитя
Незважаючи на певний оптимізм, проявлений спільнотою кілька місяців тому з приводу спроби переродження Fusebox, породжений заявою головного розробника останнього Адама Хаскеля про початок роботи над FuseNG, мріям не було суджено здійснитися. Суть подій була в тому, що компанія Teratech гальмувала розвиток Fusebox, через що фреймворк поступово відставав від розвитку подій в галузі, тому Адам зробив спробу витворити гілку проекту, повністю підтримувану спільнотою, аби надати проектові другий шанс.
На жаль, виявилися правими скептики, що не вірили в успіх цієї ініціативи.
Як повідомив Адам в своєму блозі, він не має наснаги підтримувати фреймворв, котрим сам не користується.
Фактично це означає поступове вмирання Fusebox, точніше продовження цього без особливих шансів на воскресіння.
Шкода, він досі є моїм першим та улюбленим фреймворком.
Підхід до розгортання сайту на базі Fusebox 5
В нетрях обговорення груп Railo виявив пару повідомлень, інформацію з котрих варто зберегти на майбутнє. В них наводиться спосіб оновлень живого сайту на базі Fusebox 5.
Основною проблемою, що треба вирішити, це генерація parsed файлів при одночасному доступі кількох (багатьох) користувачів. Це є відомим недоліком FB, котрий поки що не було остаточно виправлено. Суть його в тому, що при конкурентному доступі FB може записати "криві" файли (наприклад, недописані, коли <cfif> не закривається), через які весь додаток перестає працювати, видаючи незрозумілі й кожного разу різні помилки CFML синтаксису.
Тут є дві речі, що варто пам'ятати.
1. Необхідно завжди вмикати production mode на живому сайті. Незважаючи на очевидність кроку, це вельми розповсюджена помилка. Бо в development режимах FB генерує ті чи інші файли, що значно підвищує вірогідність виникнення помилок. Не кажучи вже про те, що сповільнює роботу сайту.
2. Варто тримати три робочі копії проекту.
Перша -- повноцінна розробницька версія, з відповідним development режимом, типово локально у розробника.
Друга -- живий сайт, з production режимом та всіма відповідними налаштуваннями.
І нарешті третя копія, призначення тільки для розгортання (deployment). Вона розміщується окремо від основного сайту (на тому самому сервері) та призначена для безпечного генерування parsed файлів (для великих проектів може займати кілька хвилин), котрі потім гуртом копіюються прямо на живо. Цю операцію варто повторювати при кожному оновленні, принаймні коли змінюються файли, що знаходяться під контролем Fusebox'у.
У випадку зміни ланцюжків (circuits) може потребуватися запустити основний сайт з fusebox.load, щоб він їх "підхопив".
На щастя, цей процес цілком можна автоматизувати, наприклад за допомогою Ant.
Примітка для користувачів Railo: deployment та production копії варто тримати ізольованими в різних веб-контекстах, хоча саме ядро Fusebox може бути те саме, достатньо використати мапінги (mapping) для контекстів.
Зміни в документації Fusebox
Як повідомив сьогодні Адам Хаскель (Adam Haskell), документація та баґтркекінг фреймворку більше не вестимуться в Trac. Цікаво, що заміною стали пропрієтарні системи від Atlassian: Confluence Wiki та Jira. Штука в тому, що вони надані під "free Atlassian open source license for Fusebox", тобто безкоштовно. Зрозуміло, Atlassian приємно попіаритися за рахунок допомоги відомому проектові.
Отже, тепер документація доступна за адресою http://wiki.fuseboxframework.org
Поки що особливої вигоди з точки зору користувача я не побачив, але Адам наполягає, що редагування стало значно зручнішим. Сподіваюсь, це позитивно відобразиться на кількості документації.
Трекер знаходиться за адресою http://jira.fuseboxframework.org
Більшість тікетів було вже перенесено. Але, як зауважив Адам, якщо важливі для вас тікети були загублені, він буде радий їх перенести, або навіть можете зробити це самі.
Fusebox 5
Версия 5.1 этого фреймворка вышла 26 июня, скачать ядро, плагины и примеры можно тут. Там же можно скачать и словари, но о них чуть дальше. Всё что написано касается версии для ColdFusion, но большинство подходит и для PHP-версии. Для упрощения понимания терминов, перевод названий не везде дословный.
Некоторые нововведения:
- добавлены новые режимы работы (кроме уже существующих development и production), - добавлены словари (lexicons), - теперь можно использовать одни и те же файлы ядра для нескольких приложений. Собственно можно использовать практически все файлы, от сёркитов до словарей (global sharing), - добавлены безопасные URL-ы - добавлен режим трассировкиКоротко о каждом
Режимы работы:
1. developement-full-load - аналогичен режиму developement для Fusebox 4, который теперь использовать не рекомендуется (режим, не Fusebox =)). Заставляет Fusebox парсить все файлы, а если были изменены xml файлы - в добавок перезагружает сам Fusebox 2. development-circuit-load - перегружает все circuit файлы, которые участвуют в запросе и парсит все файлы, необходимые для выполнения текущего запроса 3. production - тут изменений нет, используются уже распарсеные файлы, все работает правильно и быстро =)также можно выбрать режим, используя переменные (само собой они логические): fusebox.load - перегружает xml файлы fusebox.parse - парсит выбранный фьюзэкшн fusebox.execute - выполняет его fusebox.loadclean - то же что и load, но удаляет все файлы, которые распарсены до этого fusebox.parseall - парсит все public фьюзэкшны
Словари (lexicons)
Позволяют вводить использовать в circuit файлах новые функции и управлюящие структуры. Словари состоят из слов (verbs). Объявляются и используются словари как пространства имен XML. Подключить словарь можно так:<fusebox xmlns:myLex="/lexicon/mylex"/>
или так
в circuit.xml.cfm
<circuit xmlns:myLex="/lexicon/mylex"/>
и затем использовать в circuit.xml.php примерно так:
<myLex:dump label="Attributes Scope" var="Attributes" />
За руководством по написанию словарей лучше обратиться сюда
Shared core files
Для использования общих файлов ядра, в каждом отдельном приложении нужно создать файл index.cfm такого вида:<cfset FUSEBOX_APPLICATION_KEY = "myApp">
<cfset FUSEBOX_APPLICATION_PATH="../scripts/FBCore" >
<cfinclude template="#fusebox_Application_Path#/fusebox5/fusebox5.cfm" >
"Безопасные" URL'ы
Используются за счет еще одного нововведения - тега . Теперь xfa будет выглядеть так:<parameter name="id" value="#attributes.id#"/>
</xfa>
Такой механизм позволяет модифицировать URL, изменяя параметры self, queryStringStart, queryStringSeparator, queryStringEqual и myself. Например если задать их все как '/', то такой получим URL: app.edittask/id/#attributes.id# и myself - index.cfm/fuseaction/
"Безопасность" тут заключается в более удобном понимании таких URL'ов человеком и поисковыми системами.
Режим трассировки
УстановивВот вкратце и все о нововведениях. На самом деле их значительно больше, и они заслуживают более подробного описания, но, что есть - то есть =)
