Модераторы: skyboy, MoLeX, Aliance, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Библиотека Bootstrap.php Нужна или нет? 
V
    Опции темы
chak
Дата 22.6.2013, 11:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 9
Регистрация: 24.7.2010

Репутация: нет
Всего: нет



Идея

Работая над админкой своего проекта (админка делается на Bootstrap) обнаружил, что мне очень не хватает возможности прямо из php формировать содержание элементов Bootstap. Например:

1. Наполнять содержания выпадающих списков меня в зависимости от прав пользователя.

2. Наполнять навигационный бар элементами в зависимости от многих факторов, он у меня используется для профайлинга.

3. Количество и разнообразие кнопок очень велико, поэтому для них хотелось бы иметь так же простой способ создания.

... и множество других вещей, так же хотелось формировать прямо в php коде, а не в шаблоне.

Осознав это я начал создавать фактически отдельную библиотеку, которую условно назвал Bootsrap.php. Когда были созданы кнопка, выпадающее меня, хлебные крошки, pager, появилась идея выложить наработки на гитхаб.

Аналоги

Поиски аналогов навели только на http://www.cniska.net/yii-bootstrap/, но эта библиотека мне не понравилась, во-первых привязка к yii, который я не использую, во-вторых конфигурирование элементов с помощью массива, что я не приемлю и о чем напишу ниже.

Как я вижу должна выглядеть подобная библиотека?

1. Главное! Кодкомплит должен избавить от необходимости каждый раз смотреть в документацию Bootstap.  Как это, будет видно из примеров.
2. Для создания элементов должна использовать цепочка вызовов аля jQuery, а не массивы. Это напрямую связано с предыдущим пунктом.
3. Библиотека должна быть максимально просто в использовании, в идеале что бы не нужно было читать документации и смотреть примеров использования, должно быть достаточно базовых знаний, что может Bootstrap. Опять же все благодаря кодкомплиту и phpdocs.
4. Не смотря на перечисленное у библиотеки должна быть и хорошая документация и примеры.
5. Разумеется не должно быть привязано к какому-то конкретному фреймворку

Примеры
Код

use \BootstrapPhp\Button;
use \BootstrapPhp\Icon;
use \BootstrapPhp\DropdownMenu;

// Простое создание кнопки
$button = new Button('Удалить все', $url);

// Добавляем разные свойства (все не обязатено)
$button
    ->setIcon(Icon::TRASH)
    ->setType(Button::TYPE_SUCCESS)
    ->setTag(Button::TAG_BUTTON)
    ->makeToggle()
    ->setLoadingText('Loading ...');

// Добавляем кнопку выпадающий список
$dropdown_menu = new DropdownMenu();
$dropdown_menu
    ->... // заполняем меню
$button->addDropdownMenu($dropdown_menu);

// Добавление html атрибутов не связанных с Bootstrap, если нужно
$button
    ->setId('myButton')
    ->setClass('delete_all')
    ->addDataAttribute('data_name_1', 'data_value_1')
    ->addDataAttribute('data_name_n', 'data_value_n');


На примере тяжело увидеть все прелести такого подхода. Как я писал выше главное удобство это кодкомплит в IDE (у меня PHPStorm, но проверю чтобы все работало и в других IDE). Кроме того что кодкомплит по названию методов подсказывает вам какие возможности у вас есть, так еще каждый метод снабжен phpdoc'ом где не только описано его предназначение, но и предназначение каждого атрибута и его тип. Кроме банальных string и bool, есть типы вроде использовано нами выше DropdownMenu, что однозначно вам скажет, что методу кнопки addDropdownMenu() нужно скормить именно объект выпадающего списка.

Проблемы

1. Главная! У меня плохо с английский, поэтому все будет на русском и phpdocs и документация. Конечно же в идеале должно быть еще на английском, но так будет только если кто-то возьмется и переведет, либо может быть жену придется привлечь.

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

Вопросы

Хотелось бы узнать в первую очередь не делаю ли я очередной велосипед? Напишите пожалуйста если вы знаете аналоги.
Нужно ли вам это, будете ли использовать?
И какие пожелания или несогласия с моими подходами у вас есть?

Это сообщение отредактировал(а) chak - 23.6.2013, 12:31
PM MAIL   Вверх
Sanchezzz
Дата 22.6.2013, 13:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1670
Регистрация: 19.11.2006
Где: Voronezh

Репутация: 41
Всего: 60



Лучше всего нативный html+js для этих целей, больше гибкости и наглядно, и главное быстрей работает, в местах даже меньше кода)
Если и нужно вывести список пунктов меню то достаточно в слой, сделать вывод  массива через цикл
Цитата

1. Главное! Кодкомплит должен избавить от необходимости каждый раз смотреть в документацию Bootstap.  Как это, будет видно из примеров.

Зато придется смотреть вашу документацию. Icon::TRASH итд мне не запомнить придется смотреть вашу документацию
Какие методы можно использовать, какие параметры передавать можно, на IDE не смотрим.
Прелестей в общем не вижу не все используют большие тяжелые IDE, я вот в np++ использую
Цитата

Нужно ли вам это, будете ли использовать?

Нет, жизни радости это мне не придаст.  У меня уже давным давно в папочке для себя лежит сохраненный сайт bootstrap в качестве документации и с примерами. 

Цитата

И какие пожелания или несогласия с моими подходами у вас есть? 

В DropMenu можно сделать автоматически определять URL сайта и пункта меню и добавлять класс active
Вы главное делайте а желающих использовать или не использовать, найдутся.

Это сообщение отредактировал(а) Sanchezzz - 22.6.2013, 13:06


--------------------
Понравился ответ "+" по репе, не забываем закрывать тему, заказы в LS.
PM MAIL Skype GTalk   Вверх
chak
Дата 22.6.2013, 15:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 9
Регистрация: 24.7.2010

Репутация: нет
Всего: нет



Sanchezzz, Если np++ то коненчо плюсов нет одни минусы. 
Делать сделаю так как самому нужно. Как будет не стыдно людям показать выложу на гитхаб
PM MAIL   Вверх
SergV
Дата 28.6.2013, 08:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 197
Регистрация: 4.8.2006
Где: Германия

Репутация: нет
Всего: 1



chak, возможно будет правильным выложить на гитхабе сразу, так как если идея кому понравится, возможно к ней присоединятся, и помогут с разработкой.

Я лично сейчас тоже работаю над админкой с bootstrap, правдо на базе yii, и сказать чесно, не отказался бы от такого. Хотя я пока не проверял как работает аналог(тот что по ссылке), и работает ли в NetBeans, так как по привычке пока пользую np++. Надо будет глянуть...

Этот ответ добавлен с нового Винграда - http://vingrad.com
PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.1003 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.