LINUX.ORG.RU

Фреймворк для PHP


0

2

Посоветуйте пожалуйста по своему опыту. Требования:

  1. Удобный
  2. Бесплатный
  3. Универсальный
  4. С простой и понятной обучалкой

Лицензия значения не имеет.

★★★★

Kohana , один из адекватных фреймворков для такого убого языка как пэхэпэ)))

И самый большой плюс - очень приятный, читаемый код, что редкость для поделок на PHP

yanka ★★ ()

flying_html+js+mysql_spagetti-code_monster my_own_bicycle_edition

anonymous ()

Говорят, Yii неплох. Мне приходилось имет дело с Zend - ничего так, этакая Java+php.

helios ★★★★★ ()
Ответ на: комментарий от alix

Да, но как минус мало документации на русском, но в принципе архитектура у него прозрачна, да и на англ неплохая документация, так можно въехать, при желании

yanka ★★ ()
Ответ на: комментарий от yanka

Главное - общие принципы понять, а дальше со справочником, английский в данном случае - не проблема

alix ★★★★ ()

Создай опрос что ли. Интересно даже стало.

dizza ★★★★★ ()
Ответ на: Пэхэпэ не нужен в принципе от yanka

>Попробуйте нормальные человечные фреймворки , например ROR (Ruby) или Django(Python)

Про первый ничего не скажу, не сталкивался, а назвать удобным Django может только человек, не евший ничего слаще морковки :D

KRoN73 ★★★★★ ()
Ответ на: комментарий от KRoN73

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

yanka ★★ ()
Ответ на: комментарий от yanka

>Увы я тебе не могу предложить писать веб приложения на Python используя только стандартную библиотеку

Я тебе говорю, что для тебя морковка (Django) — уже сладко, ты мне говоришь, что мне не понравится сладость картошки (стандартная библиотека). Боюсь, что у тебя не хватает логики :)

Я, лично, предпочитаю более «сладкие» решения. И там, где на Django мне приходилось писать по 10-20 строк кода, обходиться 1-5 строками.

KRoN73 ★★★★★ ()
Ответ на: комментарий от KRoN73

Просвети нас, слепых и несведущих , где ты нашел сей священный Грааль? )))

yanka ★★ ()
Ответ на: комментарий от pi11

Вот и я жду ответа, даже ванну успела принять , а ответа все нет

yanka ★★ ()

очередной тред выбора фрэймворка. Неделю назад уже обсудили, и большенство было за yii.

impr ()
Ответ на: комментарий от trashymichael

Ну, это хорошо, что не спетросянил. Ты на верном пути.

KRoN73 ★★★★★ ()

Зависит от задачи. Где-то будет больше функциональности, больше сделано заранее, но его нужно будет дольше учить и он будет менее универсальный. А где-то будет меньше функций, типа как в kohana, но он будет прост и универсален.

Tark ★★ ()
Ответ на: комментарий от trashymichael

Наверное для недостаточно дебилов, т к часто приходится слышать что там все «сложно» и «непонятно»

redixin ★★★★ ()
Ответ на: комментарий от trashymichael

например?

Кстати, давай сравним. Может, в Django за последний год что-нибудь заметно улучшили :) Простая задача. Есть загружаемая страница, в шаблон которой вставляется модуль с каким-то параметром. Нужно при нажатии на кнопку поменять выведенный модулем код на другой, того же модуля, но другого параметра. Ну, пусть для определённости, выводится список новостей за сегодня, а при нажатии на кнопку «вчера» нужно подменить его на вчерашний.

Мой вариант. Модуль: classes/news/module/day.php

class news_module_day extends bors_module
{
    functon body_data()
    {
        switch($this->arg('date'))
        {
                case 'yesterday':
                        $date = date_yesterday(time());
                        break;
                default:
                        $date = time();
                        break;
        }

        $begin = date_today($date);
        $end = date_yesterday($date);

        return array(
            'news_list' => bors_find_all('news', array(
                'create_time BETWEEN' => array($begin, $end)
            )),
        );
    }
}

Шаблон модуля: classes/news/module/day.html

<ul>
{foreach $news_list as $n}
    <li>{$n->titled_link()}</li>
{/foreach}
</ul>

Можно, конечно, и на phaml (yaml+php), будет компактнее, но не наглядно. Или на голом PHP. Пусть будет smarty. В любом случае замена шаблона — это только замена файла.

Наша страница: classes/news/main.php

class news_main extends bors_page
{
    // Данных никаких в примере нет, можно ничего не использовать
    // Но на странице для простоты используем jquery. Подключим:
    function pre_show()
    {
        template_jquery();
        return parent::pre_show();
    }
}

Шаблон тела страницы: classes/news/main.html

<div id="place">
{module class="news_module_day"}
</div>

<a class="button" href="#">вчера</a>

Автозагружаемый JS, используем в нём jquery: classes/news/main.inc.js

$(function() {
    $('.button').bind(function(){
        $.ajax({
            url: '/_bors/tools/ajax/module/news_module_day extends/',
            data: { date: 'yesterday' },
            success: function(data){
                $('#place').html(data)
            }
        })
    })
})

Вроде, ничего не забыл. Это готовое полное решение под ключ. Нужно ещё только или в лоб его привязать к URL'у в url_map.php:

bors_url_map(array(
    '/news/ => news_main',
);

или сделать класс news_main автоматически привязывемым:

class news_main // …
{
    // …
    var $is_auto_url_mapped_class = true; // давно пора сделать более короткое имя, кстати.
    // …
}

Вот теперь, вроде, действительно всё.

Давай аналогичный пример на Django :) Чтобы тоже был полностью рабочий, залил на сайт — и работает.

KRoN73 ★★★★★ ()
Ответ на: комментарий от trashymichael

>я если чесно не понял причем тут джанго?

Я прошу тебя привести эквивалентное решение на Django.

чего по твоему нет в джанго из того что ты тут описал?

Да всё там есть. Только писанины и ненужно ручной работы много больше. По крайней мере было, когда я им занимался :)

KRoN73 ★★★★★ ()
Ответ на: комментарий от KRoN73

По-моему, вы пытаетесь сейчас сравнить язык-шаблонизатор и язык общего назначения, что по определению бессмысленно :) И про «ненужную ручную работу» в сравнении PHP с питоном я бы вообще не говорил - смешно.

enchantner ()

Говорят, Silverstripe неплох как фреймворк, в чем-то похож на джангу.

enchantner ()
Ответ на: комментарий от enchantner

>По-моему, вы пытаетесь сейчас сравнить язык-шаблонизатор и язык общего назначения

По-моему, очевидно, что я сравниваю два фреймворка.

И про «ненужную ручную работу» в сравнении PHP с питоном я бы вообще не говорил - смешно.

Ну так давайте пример на Django! Я же привёл пример на BORS :)

Почему в ответ на конкретное примитивное решение, написанное за 5 минут, из которых 3 минуты ушли на войну с форматированием ЛОРовского движка, идут одни только отмазки?

KRoN73 ★★★★★ ()
Ответ на: комментарий от KRoN73

>> По-моему, вы пытаетесь сейчас сравнить язык-шаблонизатор и язык общего назначения

По-моему, очевидно, что я сравниваю два фреймворка.

Уточню, что _как язык_, Python мне очень нравится, в отличие от PHP, который для меня просто инструмент. И всякие мелкие системные скрипты я пишу обычно именно на Питоне. Но вот сайты предпочитаю разрабатывать на PHP.

KRoN73 ★★★★★ ()
Ответ на: комментарий от KRoN73

А тут вопрос подхода - на php можно написать сайт одним файлом, но суть от этого не меняется. На питоне точно так же одним файлом можно написать самостоятельный асинхронный http-сервер, который будет, не требуя ни апача, ни нгинкса, отдавать странички тысячам клиентов сразу. А да, и еще - в случае с php чаще всего подобное творение представляет собой дикую смесь html со встроенными тегами. Кому что нравится, но сайты на питоне и писать, и поддерживать - одно сплошное удовольствие, в отличие от большинства, написанного наспех на php. Хотя у второго фреймворков и побольше, но сути это не меняет :)

enchantner ()
Ответ на: комментарий от enchantner

>А тут вопрос подхода - на php можно написать сайт одним файлом

И что дальше? Я привёл пример «одного файла»?

На питоне точно так же одним файлом можно написать самостоятельный асинхронный http-сервер

Да, но какое это отношение имеет к сравнению фреймворков?

в случае с php чаще всего подобное творение представляет собой дикую смесь html со встроенными тегами

Где в примере выше такая смесь?

Кому что нравится

Безусловно. Но выше звучало мнение, что Django априори удобнее и качественнее любого PHP-фреймворка. Вот подтверждение этого мнения (или признание его неправоты, или приход к тому или иному консенсусу по вопросу сравнения фреймворков) я и жду.

KRoN73 ★★★★★ ()
Ответ на: комментарий от trashymichael

Вся киллер-фича приведённого выше кода, как мне кажется, заключается в этом вот:

<div id="place">
{module class="news_module_day"}
</div>
В осталном разницы с джанговским кодом не будет, только всякие там *bors* заменить на свои. Как сделать вызов модуля из джанговского шаблона я что-то не припомню сходу. Можно?

SOmni ★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.