Подскажите задания для новичков

DevConf 2017 - видео с конференции, успей до 17 июля | Проверенные VDS на SSD в Европе и России

Тема в разделе "Вопросы по программированию на РНР", создана пользователем Redjik, 25 сен 2012.

  1. fixxxer

    fixxxer К.О.

    Сообщения:
    12.117
    Ваш город:
    Moscow, Russia
    Adress:
    Moscow, Russia
    Country:
    Location on Map:
    Я знаю, как обойтись, но это довольно грустно все это писать каждый раз.
    Плюс, тут архитектурный просчет, нормально на уровне AR сделать невозможно - всякие "решения" с гитхаба с парсингом information schema это еще хуже.
    Нужен table gateway, зря решили сделать "проще".
     
  2. Ragazzo

    Ragazzo TDD interested

    Сообщения:
    1.836
    Adress:
    Tynda, Russia
    Country:
    Location on Map:
    fixxxer
    архитектурный просчет в чем?вот чего на мой взгляд действительно не хватает это автотранзакции, чтобы все запросы были в одной транзакции и не проверять каждый раз есть ли текущая активная транзакция.
     
  3. fixxxer

    fixxxer К.О.

    Сообщения:
    12.117
    Ваш город:
    Moscow, Russia
    Adress:
    Moscow, Russia
    Country:
    Location on Map:
  4. Ragazzo

    Ragazzo TDD interested

    Сообщения:
    1.836
    Adress:
    Tynda, Russia
    Country:
    Location on Map:
    fixxxer
    все из рельсов не перетащишь :D итак скопс оттуда взяли)
     
  5. AmdY

    AmdY Пью пиво Команда форума

    Сообщения:
    6.901
    Ваш город:
    Belarus, Minsk
    Adress:
    Minsk, Belarus
    Country:
    Location on Map:
    Ragazzo
    почему же, есть же кальки на это дело, вполне себе юзабельные, вот только на LSB, недавно дебажил одну такую, проще застрелиться.
     
  6. Ragazzo

    Ragazzo TDD interested

    Сообщения:
    1.836
    Adress:
    Tynda, Russia
    Country:
    Location on Map:
    AmdY
    например кальки?
     
  7. AmdY

    AmdY Пью пиво Команда форума

    Сообщения:
    6.901
    Ваш город:
    Belarus, Minsk
    Adress:
    Minsk, Belarus
    Country:
    Location on Map:
    https://github.com/kla/php-activerecord https://github.com/kla/php-activerecord/blob/master/test/RelationshipTest.php или извратный http://www.redbeanphp.com, есть ещё какая-то хорошая либа, но не могу найти закладку.

    fixxxer
    Что бы ты выбрал между смарти 3 и твигом и пару слов почему, а то я ни со вторым дела не имел, а вот первый сильно изменился с ветки 2 и я теряюсь в выборе. есть ли существенная разница из-за объектности твига?
     
  8. Ragazzo

    Ragazzo TDD interested

    Сообщения:
    1.836
    Adress:
    Tynda, Russia
    Country:
    Location on Map:
    AmdY
    гляну первые два, а вот редбин это же вообще жесть, не?когда то давно на хабре про него статья была, ну я скачал, посмотрел... такой ужас там.
     
  9. fixxxer

    fixxxer К.О.

    Сообщения:
    12.117
    Ваш город:
    Moscow, Russia
    Adress:
    Moscow, Russia
    Country:
    Location on Map:
    AmdY
    Твиг. За удобство расширения, консистентность API, удобство отладки и невозможность получить фатал еррор шаблоном (это, конечно, влечет некоторые проблемы с производительностью - решается вот этим: http://derickrethans.nl/twig-extension.html).
    Смарти как был большим хаком так и остался.
     
  10. AmdY

    AmdY Пью пиво Команда форума

    Сообщения:
    6.901
    Ваш город:
    Belarus, Minsk
    Adress:
    Minsk, Belarus
    Country:
    Location on Map:
    fixxxer
    Собственно проблема в том, что я пока могу использовать твиг как смарти, максимум, что использование наследования. помнится ты бросал код где для описание вида форм использовал макросы. Если не влом, собери пару юзкейсов твига, отличных от типично самрти-подхода.
     
  11. fixxxer

    fixxxer К.О.

    Сообщения:
    12.117
    Ваш город:
    Moscow, Russia
    Adress:
    Moscow, Russia
    Country:
    Location on Map:
    Макросы в QuickForm2
    http://svn.php.net/viewvc/pear/pack...es/array-twig.tpl?revision=325495&view=markup

    Вывод дерева (обезличенный продакшен код ({% url .. %} - мой кастомный тэг, вставляет вызовы UrlBuilder-а в момент компиляции)
    http://pastebin.com/PdVbMM2b

    Наследование: с обычным все понятно, horizontal reuse позволяет реюзать код, когда, например, встречаются 1, 2 и 3-колоночные варианты одинаковых в остальном страниц - пример с сайдбаром в доке вполне наглядный.

    Человеческий эскейпинг и автоэскейпинг с понятием стратегии (в смарти - хардкод, при этом отменить экскейпинг в общем случае нельзя - есть только возможность отменить все фильтры вообще)

    Человеческое консистентное апи для всего: фильтров, функций, compile-time тэгов (где можно нормально работать, а не конвертить, как в смарти, обратно уже изговнянные приведением к кускам пхп-кода параметры). Можно легко сделать свой загрузчик - например, так я читаю из моделей пользовательские шаблоны. Внутри твига все сделано на том же API, в отличие от смарти. Легко через Environment протащить что угодно, в отличие от, опять же, смарти, где я не находил ничего лучше, чем срать в internal config properties.

    Еще можно посмотреть рецепты всяких полезных штучек.

    P.S. Какой милый оффтоп обо всем получается. :)
     
    AmdY нравится это.
  12. Ragazzo

    Ragazzo TDD interested

    Сообщения:
    1.836
    Adress:
    Tynda, Russia
    Country:
    Location on Map:
    fixxxer
    А я думал QuickForm2 умер ( его вроде поддерживал и сделал кто-то тут из phpclub.
     
  13. fixxxer

    fixxxer К.О.

    Сообщения:
    12.117
    Ваш город:
    Moscow, Russia
    Adress:
    Moscow, Russia
    Country:
    Location on Map:
    Его Sad Spirit делает. Не знаю, насколько пациент (в смысле QuickForm2 :)) жив или мертв - но пример макросов там вполне наглядный.
    У меня по другому - {{ form.input() }}, {{ form.select() }} итд - банально, а копипастить много =)
     
  14. AmdY

    AmdY Пью пиво Команда форума

    Сообщения:
    6.901
    Ваш город:
    Belarus, Minsk
    Adress:
    Minsk, Belarus
    Country:
    Location on Map:
    fixxxer
    похоже придётся полностью вычитывать доку, ведь даже вызов метода выполнить не получилось.
    PHP:
    // работает
     
    {{ table.getAction('delete') }}
    // не работает
    {{ if table.getAction('delete') }}
    {{ endif }}
    Спасибо большое, пойду-ка спать и завтра возьмусь за twig
     
  15. AmdY

    AmdY Пью пиво Команда форума

    Сообщения:
    6.901
    Ваш город:
    Belarus, Minsk
    Adress:
    Minsk, Belarus
    Country:
    Location on Map:
    Ух, не заснул, зато проблему решил, нужно было другие квантификаторы использовать
    PHP:
    {% if table.getAction('delete') %}!!{% endif %}
     
  16. fixxxer

    fixxxer К.О.

    Сообщения:
    12.117
    Ваш город:
    Moscow, Russia
    Adress:
    Moscow, Russia
    Country:
    Location on Map:
    {{ }} == {$ } (считай, что макросы это такой closure с toString)
    {% %} == { }
     
  17. Ragazzo

    Ragazzo TDD interested

    Сообщения:
    1.836
    Adress:
    Tynda, Russia
    Country:
    Location on Map:
    AmdY
    fixxxer
    Раз уж совсем оффтоп, то вроде как "производительность программиста" ночью хуже, чем днем, ну сбивать биоритмы и т. д., и т. п. нельзя иначе только хуже, вроде) сначала так кажется что вот успею успею все, не буду спать ночами, а в итоге себе же хуже, не?
     
  18. Фанат

    Фанат oncle terrible Команда форума

    Сообщения:
    39.589
    Ваш город:
    Moscow, Russia
    Adress:
    Moscow, Russia
    Country:
    Location on Map:
    Вот интересно. Почему-то конечный код из тебя надо вытягивать клещами. "Так делать не надо!" А как делать надо - молчок.
    при том что мою библиотеку освоит любой, кто знает SQL. В твоей надо каким-то образом (телепатическим?) получать сокровенное знание - что имел в виду автор, создавая тот или иной магический метод.

    Ты, конечно, можешь игнорировать мои вопросы, но это не сделает твою библиотку соответствующей твоим же заявлениям.
    Сколько ни говори "халва", но во рту слаще не станет.

    И от твоих заявлений про расширяемость расширяемой она тоже не станет.
    Это именно то, о чём я говорю - авторы фреймворков выдумают себе религию, и начинают проповедовать, как та воспитательница в анекдоте про Вовочку и Советский Союз.

    "А между ног у него была страшная действительность", прямо в соседних параграфах:
    Ну и по какому месту пойдёт (1) в случае использования (2)?

    Я не то чтобы придираюсь к тебе лично. Меня убивает, что все создатели серебряных пуль беззастенчиво врут сами себе. "У нас всё расширяется! Только вот здесь костылёчек, вот тут подпорочка, там мегахак" - а в итоге получается эталонный говнокод. Гладко было на бумаге, да забыли про овраги...
     
    Sufir нравится это.
  19. Redjik

    Redjik Падаван

    Сообщения:
    3.775
    Ваш город:
    Yekaterinburg, Russia
    Adress:
    Yekaterinburg, Russia
    Country:
    Location on Map:
    Не - фигня все это, раз в месяц можно, если выспаться утром хорошенько - день + ночь на кофе - успеваешь перед дедлайном как за 2 дня примерно... если себя в руках держать =)))
     
  20. AmdY

    AmdY Пью пиво Команда форума

    Сообщения:
    6.901
    Ваш город:
    Belarus, Minsk
    Adress:
    Minsk, Belarus
    Country:
    Location on Map:
    Фанат
    Я не вижу смысла это обсуждать, так как там такие элементарные вещи уже описаны в тестах
    https://github.com/AmdY/SimplePhpFramework/blob/master/test/vendor/Frm/DBTest.php#L67
    https://github.com/AmdY/SimplePhpFramework/blob/master/test/vendor/Frm/DBTest.php#L79

    Ragazzo
    Я категорически не могу работать раньше 11-ти, в десять голова совсем ещё не включается, на работе специально до говаривался, потому что явка к 10-ти. Даже в настольный футбол играть хорошо начинаю к 12-ти, а вот часа 3 ночи у меня пик, когда всё получается. При этом годами приучивал организм к стандартному рабочему графику, но толку нету. Думаю это индивидуально, хотя, большинство сов действительно надуманы.

    Redjik
    Перед дедлайном надо либо спать, либо уже праздновать, но ни в коем случае не писать код. Эх, у меня друг проджектменеджерит, так у его команды за неделю набегает один свободный день, при этом заказчик очень доволен скоростью разработки и утверждает что делают больше чем с предыдущим. Не знаю это управление ожиданиями или действительно от спокойного графика растёт производительность.
     
    Redjik нравится это.