ФорумПрограммированиеPHP для идиотовPHP и ООП → Реализация ООП через точку на пхп (как в руби или как в jquery)

Реализация ООП через точку на пхп (как в руби или как в jquery)

  • fgets

    Сообщения: 1099 Репутация: N Группа: Кто попало

    Spritz 14 марта 2011 г. 17:34

    Очень хочется кодить через точку, а именно переписать вообще на пхп принцип манипуляций с данными как в Active Records ROR, типа
    @post = Table.find(params[:post_id])
    @post.destroy


    Как в руби конечно не получится так что с этим я пока напиздел

    @message = Message.find('hello world')


    var message = $('message').find('hello world')


    дошел пока только до такого варианта:

    <?php
    class ActiveCode {
    static $called = false;
    }

    $_ = create_function('$model', 'ActiveCode::$called = $model;');

    function find ($params) {
    if ($model = ActiveCode::$called) {
    ActiveCode::$called = false;
    return $model.' => '.$params.' called';
    } else {
    return false;
    }
    }

    $message = $_('message').find('hello world');
    echo $message;


    что думаете по этому поводу?

    з.ы: пробовал так:

    define ('message', function () {
    ActiveCode::$called = $model;
    });


    типа чтобы


    $message = message.find('hello world');


    не получилось, пичалька :(
  • phpdude

    Сообщения: 26646 Репутация: N Группа: в ухо

    Spritz 14 марта 2011 г. 17:58, спустя 23 минуты 47 секунд

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

    $message = Message::model()->find($id);
    Сапожник без сапог
  • fgets

    Сообщения: 1099 Репутация: N Группа: Кто попало

    Spritz 14 марта 2011 г. 18:00, спустя 2 минуты 18 секунд


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

    $message = Message::model()->find($id);


    я не могу смотреть на это говно :(
  • Абырвалг

    Сообщения: 6480 Репутация: N Группа: Джедаи

    Spritz 14 марта 2011 г. 18:05, спустя 4 минуты 42 секунды

    '.' или '->' - какая впизду разница?
  • phpdude

    Сообщения: 26646 Репутация: N Группа: в ухо

    Spritz 14 марта 2011 г. 18:06, спустя 1 минуту 36 секунд

    fgets, ну блеять сделай

    Message::find($id);

    Message::get($id);

    ты так рассуждаешь, будто статические методы не наследуются))) все заебись в пхп, пхп самый ахуенный язык! с самым ахуенным синтаксисом!


    namespace Foo;
    class SubFoo {
    }

    $obj = new SubFoo();
    \die("blead, ebannii php, ne mogut ssilki otsledit normalno uebisha");
    Спустя 29 сек.

    '.' или '->' - какая впизду разница?
    ооо! ты переходишь в практики! поздравляю, приезжай в краснодар, минералкой угощу
    Сапожник без сапог
  • fgets

    Сообщения: 1099 Репутация: N Группа: Кто попало

    Spritz 14 марта 2011 г. 18:12, спустя 5 минут 47 секунд

    $_('message').create('title => Test, body => My post');

    $db->model('message')->create(array('title' => 'Test', 'body' => 'My post'));


    первый вариант в сто раз красивше
  • phpdude

    Сообщения: 26646 Репутация: N Группа: в ухо

    Spritz 14 марта 2011 г. 18:14, спустя 1 минуту 21 секунду

    fgets, напиши свой пхп, это решит все твои проблемы и убъет то количество видимо свободого времени которое у тебя в избытке)

    зы: первый вариант такое же гавно как и второй
    Сапожник без сапог
  • fgets

    Сообщения: 1099 Репутация: N Группа: Кто попало

    Spritz 14 марта 2011 г. 18:14, спустя 32 секунды

    $_('message').create(array('title' => 'Test', 'body' => 'My post'));
  • phpdude

    Сообщения: 26646 Репутация: N Группа: в ухо

    Spritz 14 марта 2011 г. 18:15, спустя 42 секунды


    Message.create({title: "new title", date: "2011/10/20"});
    вот ЭТО - один из наипиздатейших вариантов, улучшить его может только рубиевское :title для непробельных строк
    Сапожник без сапог
  • fgets

    Сообщения: 1099 Репутация: N Группа: Кто попало

    Spritz 14 марта 2011 г. 18:16, спустя 56 секунд


    fgets, напиши свой пхп, это решит все твои проблемы и убъет то количество видимо свободого времени которое у тебя в избытке)

    зы: первый вариант такое же гавно как и второй


    твой вариант с Message:: потребует еще создать этот класс Message
    Спустя 43 сек.


    Message.create({title: "new title", date: "2011/10/20"});
    вот ЭТО - один из наипиздатейших вариантов, улучшить его может только рубиевское :title для непробельных строк


    да согласен
  • phpdude

    Сообщения: 26646 Репутация: N Группа: в ухо

    Spritz 14 марта 2011 г. 18:18, спустя 2 минуты 5 секунд

    потребует еще создать этот класс Message

    нихуясе ты мозг))))))))))))
    да, ты прав, но никто не запрещал его сгенерить ведь? да и объект модели описательный - пройстейший класс с набором протектед свойств. в IDE делается за 20 секунд, особенно если IDe пиздатая, как например vs'ка :-)

    пхп увы уныл
    Спустя 64 сек.
    зато ты получишь огроменный плюс - подсказки по именам полей, что избавит тебя от ОШИБОК В БУДУЩЕМ, что ВАЖНЕЕ твоей сиемитной "БЛЯДЬ, НАДО ОПИСАТЬ КЛАСС". в пиздатом коде важно что? правильно, его ДАЛЬНЕЙШАЯ ПОДДЕРЖКА, а не НАХУЯЧИТЬ ПО БЫСТРОМУ
    Сапожник без сапог
  • fgets

    Сообщения: 1099 Репутация: N Группа: Кто попало

    Spritz 14 марта 2011 г. 18:19, спустя 1 минуту


    потребует еще создать этот класс Message

    нихуясе ты мозг))))))))))))
    да, ты прав, но никто не запрещал его сгенерить ведь? да и объект модели описательный - пройстейший класс с набором протектед свойств. в IDE делается за 20 секунд, особенно если IDe пиздатая, как например vs'ка :-)

    пхп увы уныл
    Спустя 64 сек.
    зато ты получишь огроменный плюс - подсказки по именам полей, что избавит тебя от ОШИБОК В БУДУЩЕМ, что ВАЖНЕЕ твоей сиемитной "БЛЯДЬ, НАДО ОПИСАТЬ КЛАСС". в пиздатом коде важно что? правильно, его ДАЛЬНЕЙШАЯ ПОДДЕРЖКА, а не НАХУЯЧИТЬ ПО БЫСТРОМУ


    мне вот щас netbeans нравится, но с пхп через нее еще не работал, только с джавой и рублями
  • phpdude

    Сообщения: 26646 Репутация: N Группа: в ухо

    Spritz 14 марта 2011 г. 18:21, спустя 2 минуты 7 секунд

    ВоТ ТаК То БлЕяДь
    Сапожник без сапог
  • fgets

    Сообщения: 1099 Репутация: N Группа: Кто попало

    Spritz 14 марта 2011 г. 18:21, спустя 22 секунды

    НАХУЯЧИТЬ ПО БЫСТРОМУ


    дак это же и надо


    я вот когда вижу такой код мне блевать охота:
    function send_pm($topic_id, $t_info, $to_user_id) 
    {
    global $db, $userdata, $lang, $msg_error, $cur_time;

    $enc_ip = encode_ip($_SERVER['REMOTE_ADDR']);

    $query = "UPDATE ". BT_TORRENTS_TABLE ." SET call_seed_time=". $cur_time ." WHERE topic_id=$topic_id";
    $rez_T = $db->sql_query($query);
    if ($rez_T === false) $msg_error = "TIME";

    $subj = sprintf ($lang['Callseed_subj'], $t_info['topic_title']);
    $text = sprintf ($lang['Callseed_text'], $topic_id, $t_info['forum_title'], $t_info['topic_title'], $t_info['attach_id']);
    $text = $db->escape($text);

    $query = "INSERT INTO ". PRIVMSGS_TABLE ."
    (privmsgs_type, privmsgs_subject, privmsgs_from_userid, privmsgs_to_userid, privmsgs_date, privmsgs_ip) VALUES
    (" . PRIVMSGS_UNREAD_MAIL . ",'" . $subj . "'," . $userdata['user_id'] ."," . $to_user_id. "," . $cur_time . ",'" . $enc_ip . "')";
    $rez_a = $db->sql_query($query);
    if ($rez_a === false) $msg_error = "MSG";

    $id = $db->sql_nextid();

    $query = "INSERT INTO ". PRIVMSGS_TEXT_TABLE ." VALUES($id, '" . make_bbcode_uid() . "', '$text')";
    $rez_b = $db->sql_query($query);
    if ($rez_b === false) $msg_error = "MSG_TEXT";

    $query = "UPDATE ". USERS_TABLE ." SET
    user_new_privmsg = user_new_privmsg + 1,
    user_last_privmsg = $cur_time,
    user_newest_pm_id = $id
    WHERE user_id = $to_user_id";
    $rez_c = $db->sql_query($query);
    if ($rez_c === false) $msg_error = "POPUP";
    }
  • phpdude

    Сообщения: 26646 Репутация: N Группа: в ухо

    Spritz 14 марта 2011 г. 18:27, спустя 5 минут 47 секунд

    fgets, ахуенный код, чем он тебе не нравится???
    Спустя 33 сек.
    в нем даже свой sequency enumerator используется! ты до такого бы даже не додумался :D
    Сапожник без сапог

Пожалуйста, авторизуйтесь, чтобы написать комментарий!