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

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

  • fgets

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

    Spritz 15 марта 2011 г. 0: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 15 марта 2011 г. 0:58, спустя 23 минуты 47 секунд

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

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

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

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


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

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


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

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

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

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

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

    Spritz 15 марта 2011 г. 1: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 15 марта 2011 г. 1:12, спустя 5 минут 47 секунд

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

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


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

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

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

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

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

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

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

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

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

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

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

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

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


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

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


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

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


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

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

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

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

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

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

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

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


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

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

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


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

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

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

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

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

    Spritz 15 марта 2011 г. 1: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 15 марта 2011 г. 1:27, спустя 5 минут 47 секунд

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

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