Теги форумов: PHP

Фильтр: фреймворк, программирование, BORS, CMF, авиабаза, php, Linux
Теги : PHP, фреймворк, программирование, BORS, CMF, авиабаза, php
 
Тема
8
2015-04-21, Balancer: /me Слоупок сделал сегодня на своих машинах, наконец, opcache.enable=1 && apt-get purge php5-xcache && emerge -C xcache. PHP Opcache явно созрел и даже работает быстрее, чем xcache. 8 лет на xcache просидел: Тестируем новый форум. [Balancer#16.05.07…
0
2011-09-02, Balancer: В первом приближении можно считать базовую демо-версию работающей. Можно сделать вручную через BORS_EXT/make/make.sh, но проще подождать — после окончания первого урока сделаю готовый для скачивания архив. Да, все уроки в демо-версию входят. http://balancer.ru:8800/exsiblo/ сейчас работает на встроенном веб-сервере демо-версии Кусок первого урока…
обсуждение
1
2011-09-02, Balancer: Вчера написал вторую часть , сегодня добавил блок комментариев через популярные социальные сети.
4
2011-05-18, Balancer: … Облом жёсткий. Ночью, когда я уже спал, дома вырубили свет. А тест был запущен в обычной ssh-сессии, ни вывода лога в файл, ни screen'а. Так что чем там и с какими цифрами закончилось — не в курсе
0
2011-02-28, KRoN73: В общем, с самого перехода на php-5.3 ещё осенью, у меня сломался стектрейс. При ошибках выдаётся только тупо имя файла с номером строки. «Warning: Division by zero in /var/www/aviaport.wrk.ru/htdocs/ bors-loader.php on line 14». Исчерпывающая информация... При чём проблема - на всех машинах сразу. Конфиги на каких-то не менялись, на каких-то с целью борьбы с глюком полностью с нуля ставились. xdebug с его xdebug.show_exception_trace есть. Без него тоже пробовал. На машинах с Ubuntu или CentOS - всё ок, всё работает. Даже не знаю, куда уже копать. Раньше было не принципиально, у меня во фреймворке свой обработчик ошибок, его хватало. А вот сейчас задача стоит такая, что полноценный стектрейс нужен. Есть мысли? Кто-нить сталкивался? На форуме Gentoo с моим «английским» никто связываться, видимо, не хочет - http://forums.gentoo.org/viewtop ic-t-854079-start-0.html [/p][/p][/p] // Транслировано с http://www.linux.org.ru/forum/ad min/5957970
0
2010-12-16, Balancer: Вводится новое выделенное понятие - контейнер объектов. Это объект, который в себе отображает другие объекты. Например, топик форума содержит в себе постинги. Соответственно, унифицируется ряд старых частных методов. Например, ссылка с анкором на сообщение в теме, $post -> url_in_topic ( ) теперь единообразно именуется $post -> url_in_container ( ) . Возможна потенциально спорная ситуация, когда объект может принадлежать двум и более контейнером. Сообщение может быть постингом в топике и одновременно записью в блоге. В этом случае требуется разделять сущность. В блог записываются не постинги, а записи блогов, уже связанные с постингами.
0
2010-12-06, KRoN73: Собственно, сабж. PDO - это, конечно, хорошо. Но приходится городить костыль с кучей switch'ей в зависимости от драйвера. Может, кто-то уже этим мучился и сделал кроссплатформенную генерилку CREATE TABLE? Интересует mysql, sqlite, oci и postgres. [/p] // Транслировано с http://www.linux.org.ru/forum/de velopment/5648989
0
2010-10-22, Balancer: В монолитных статических страницах (storage_fs_htsu) теперь опционально поддерживается выполнение PHP-кода в виде: code bbcode Наше предприятие является ведущим игроком на рынке, на протяжении [php]echo sklonn(date('Y')-1998, 'года,лет,лет');[/php] предоставляющим своим Клиентам и Партнерам широкий перечень услуг и сервисов. Вывод перехватывается по ob_start(). Замена происходит при каждом чтении файла. Логика работы ещё может меняться, нынешний вариант - предварительный. Использование любых особенностей будет оговорено позже отдельно. По умолчанию обработка PHP выключена. Для включения используется code php config_set ( 'storage.htsu.do_php' , true ) ; Добавлено в r1058 .
0
2010-10-21, Balancer: Собственно, сабж. Давно пора отписываться по более-менее значимым изменениям в проекте с возможностью их комментирования. А то Timeline на Trac'е для этого мало подходит.
0
2010-09-09, KRoN73: В продолжение старого спора о ненужности get_called_class() для статических методов. Вот уткнулся в практическую задачу. Есть понятие очереди запросов на изменение объектов. Есть базовый класс фреймворка bors_object_change_request . Есть его наследник в проекте - aviaport_object_change_request extends bors_object_change_request . Фактически наследник - это просто настроенный базовый класс, в котором прописано, какой БД и какой таблицей он должен пользоваться (в системе может быть более одного проекта, данные разных проектов должны взаимодействовать, но не конфликтовать). Есть статический метод быстрого добавления запроса на изменение свойства объекта: code text static function add($target, $property, $value, $user); И вот тут наступает облом. Я не могу наследовать этот метод. Внутри происходит создание объекта = записи в БД, экземпляра нашего класса. Но какого? Пока нет get_called_class(), я могу создавать только записи для базового класса. Имя класса-наследника мне неизвестно. Приходится лепить костыль. В…
9
2010-06-24, Balancer: Забавно. Прошло 4,5 года, фреймворк давно стал гибкий, красивый и используется в массе проектов. Но работаю над ним по-прежнему в одиночку
1
2010-05-02, Balancer: Активировал (пока почти бесполезный) плагин PHPDoc'а на Trac'е.
0
2010-01-23, Balancer: Довольно давно слепил несложный генератор SQL-запроса для создания страниц, выдающий по простому шаблону класса соответствующий код таблицы. Чуть позже добавил и генератор простого класса по нему же. Сегодня капитально расширил функционал генератора. Кроме SQL и основного класса теперь генерируется весь базовый функционал админки. Страница со списком объектов, редактирование и создание объектов... Пока ещё достаточно сыро и неконфигурабельно, но уже сильно уменьшает объём рутины. Вид шаблона примерно такой: code text class: aviaport_directory_edition title: Авиационное издание titles: Авиационные издания admin_class: aviaport_admin_directory_edition directory_editions:     int     id++!     int     edition_type_id!    //  Тип издание - выбор из перечня: Журнал, Газета, Бюллетень     string  title           //  Название издания     text    description     //  Аннотация:  …
0
2010-01-19, Balancer: Немного доработал PHP Framework BORS© Подключил блог из этого форума.
1
2009-11-26, Balancer: Коротко описана структура каталогов: Структура каталогов фреймворка
0
2009-11-23, Balancer: Наконец, взялся за давноооо назревший рефакторинг рендерера (как же это по-русски-то сказать?). Напомню, как выглядит этот механизм сейчас. Каждый объект может иметь класс, занимающийся отображением этого объекта пользователю. Класс-рендер. При выводе объекта дёргается его метод render() , который и возвращает контент. Бинарное содержимое картинки, XML RSS-фида или HTML страницы. Страницы состоят из двух компонентов: Глобальный шаблон (шапка+подвал+etc - общее оформление) Локальный шаблон (собственно, тело страницы) Всё бы хорошо, но реально рефакторинг проводился достаточно поздно, когда объекты уже рендерили сами себя, так что сейчас присутствует такая логика: если у объекта есть рендер, то вызывается он. Нет - вызывается стандартный, hardcoded-рендер старого типа (на Smarty, интегрированном в систему). Плюс несколько раз менялась терминология методов, занимающихся подготовкой данных для насыщения шаблонов. Из-за обратной совместимости эти имена поддерживаются во всех вариантах (например,…
0
2009-07-09, Balancer: Возможны ситуации, когда нужно обращаться к БД с одним именем на разных серверах. В этом случае допустима запись при конфигурировании доступа вида: code php mysql_access ( 'ALIAS-DB-NAME => REAL_DB_NAME' , 'login' , 'pssword' , 'remote-server' ) ; mysql_access ( 'REAL_DB_NAME' , 'login' , 'pssword' ) ; В этом случае объекты БД будут привязываться к именам: code php $dbh = new driver_mysql ( 'REAL_DB_NAME' ) ; // Работа с локальным mysql-сервером $dbh = new driver_mysql ( 'ALIAS-DB-NAME' ) ; // Работа с удалённым mysql-сервером с БД REAL_DB_NAME Соответственно, в конфигах ORM-объектов можно прописывать алиасы. В записи 'ALIAS => NAME' допустимо любое количество пробелов или их отсутствие.
0
2009-07-09, Balancer: Идея реализации унифицированного механизма циклической обработки (чистка кешей, логов доступа, таймерные задачи), затрагивающих весь хостинг вместе с разнородными проектами разной степени взаимной реюзабельности признана избыточно сложной и ненужной. Порождается масса проблем и подводных камней, связанных с ограничением взаимного доступа и конфигурированием объектов. Теперь строго и однозначно - все механизмы обработки работают с раздельными конфигурациями отдельно. Уточнение на счёт базовых констант: базовые каталоги системы: BORS_CORE - как и всегда, путь к ядру системы BORS_3D_PARTY - путь к расширениям третьих сторон Каталоги конкретного хостинга/сервера: BORS_HOST - индивидуальные настройки хостинга/сервера, не требующие синхронизации, например, между тестовым и рабочим сервером. Это могут быть настройки путей ФС, доступа к БД и т.п. Все привязки к хостингу. BORS_LOCAL - настройки проекта, общие для всех сайтов, например, синхронизируемые между тестовым и рабочим серверами. Общие классы, их конфигурация…
12
2009-06-30, permeakra: … 1. ... И поэтому проглатываем, долю чего? Это несколько неправильно. 2. И, в общем, рекомендую скодить на хакадж и убедиться, что решений там более чем до фига. И сервачок наподобии эрланговских более чем ничего. Хотя насчёт массового использования…
(немного о фреймворке, для Морского каталога, на примере разьяснения одному знакомому)
7
2009-06-22, HolyBoy: … Созреешь. Возьми dokuwiki [DokuWiki] , он лёгкий и быстрый. Пусть новичок эту документацию и заполняет. Ему будет шпаргалка, а тебе польза. Кстати, почему именно борс, а не РоР? Потому что тогда его не было? А если бы сейчас начинал, то РоРом…
памятка, что сделать...
2
2009-04-25, Balancer: Удалённое хранилище картинок Нужно подыскать максимально надёжное и легко доступное внешнее хранилище с возможностью аплоада без регистрации. Лучше, если со стандартизированным API. Претенденты: http://imageshack.us/ http://ipicture.ru/…
как быть?
0
2009-03-31, Balancer: Исторически сложилось, что фреймворк BORS© работает не просто на системах с разными кодировками (utf-8, windows-1251, koi8-r), но нередко в смешанных условиях (БД отдаёт данные в utf-8, клиент должен получить в windows-1251, файлы лежат в koi8-r, клиент получает в utf-8, контент сайта отдаётся в koi8-r, но RSS отдаюься в utf-8 и т.п. сочетания). До какого-то момента всё было прекрасно: 1. Все тексты в PHP-коде лежат в utf-8, но при загрузке система переводит их во внутреннюю кодировку системы. Например: class ... function title() { return ec("Тест"); } где ec() - функция, осуществляющая перекодировку utf8->internal_charset 2. Все операции над текстом (upper/lower/substr/etc) осуществляются во внутренней кодировке сервера. 3. При выводе происходит преобразование internal_charset -> output_charset. 4. При загрузке данных из пользовательских файлов происходит перекодировка files_charset -> internal_charset 5. При загрузке данных из БД происходит перекодировка db_charset->internal_charset. 6.…
0
2009-03-06, Balancer: Подключил расстановку мягких (скрытых) русских переносов с Расстановка мягких переносов Сам пакет лежит в BORS_3RD_PARTY/phphypher. bors-функция - в inc/strings.php Использование в BORS: code php <?php require_once ( 'inc/strings.php' ) ; $result = bors_hyphen ( $text ) ; Особенности: 1. Пакет работает только с cp1251. Поэтому перед вызовом осуществляется преобразование из UTF-8 в эту кодировку. Возможна потеря юникодных символов. 2. Сейчас обрабатывается только русский текст, но в будущем не исключён переход на английский. Поэтому не стоит сразу прогонять через расстановщик готовый HTML-код.
0
2008-04-22, Balancer: js.php code php <?php   class base_js extends base_page_db {     function can_be_empty ( ) { return true ; }       function preShowProcess ( )     {         include_once ( "inc/js.php" ) ;         header ( "Content-type" , "text/javascript" ) ;         return str2js ( $this -> cacheable_body ( ) ) ;     } } personal.php code php <?php   class forum_js_personal extends base_js {     private $owner ;       function __construct ( $id )     {         parent :: __construct ( $id ) ;         $this -> owner = class_load ( 'forum_user' , $this -> id ( ) ) ;     }       function cache_static ( ) { return 7 * 86400 ; }…
0
2007-07-02, Balancer: Закончил сегодня для CMF Bors© генератор форм. Довольно органично вписался в объектную модель. Предварительного описания форма не требует. Значения по умолчанию берутся из указанного в шаблоне форму класса (если для редактирования имеющегося объекта, то указывается и ID). После отсылки происходит автоматическое (при отсутствии отдельного обработчика) обновление полей существующего объекта или создание нового. Также немного автоматизирована загрузка файлов (но тут ещё нужно немного поработать). При сохранении пока отсутствует проверка валидности вводимых данных (с сохранением введённого), будет сделана немного позже. Практические примеры работы с генератором тоже выложу немного позже. ... Да, начиная с этой заметки буду понемногу освещать изменения в CMF и описывать работу механизмов
Смотри также

в начало страницы | новое
 
Поиск
Настройки
Твиттер сайта
Статистика
Рейтинг@Mail.ru