ОБСУЖДЕНИЕ

ТОП | [PHP] Программируем на OOP

22 сообщений1 просмотровОткрыта
#1
Всем привет в этой теме задаем вопросы по OOP, выкладываем полезные классы (авторство обязательно), коды, которые могут быть полезны в каком-либо роде.
#2
пример свой выложи для старта
#3
Пример синглтона, одиночного класса. В моем случае мне нужно работать с PDO, поэтому я вызываю его.

PHP
<?php

/**
 * Обработчик 
 */
class dbhandler
{
    
    private static $_instance;
    
    /**
     * Получение экземпляра
     */
    public static function getInstance ()
    {
        
        if (empty (self::$_instance)) {
            
            self::$_instance = new PDO ('mysql:host=localhost;port=3306;dbname=testdb;charset=utf8', 'root', '', array (
                PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION
            ));
            
        }
        
        return self::$_instance;
        
    }
    
}

#4
readln(e);
i:=0;
y:=0;
Repeat
i:=i+1;
y:=y+1/i;
Until 1/i<e;

вот смотри это же код оператор цикла
но какого именно,не пойму
#5
Было задание на одном форуме,показать решение арифметики в ооп варианте. Конкретнее,передать в конструктор значения,всячески мим оперировать в классе и результат возвращать в обычные методы.

PHP

<?php class Student {
 
public $a,$b,$c;

function __construct($a,$b,$c) {
      $this->a = (double)$a;
      $this->b = (double)$b;
      $this->c = (double)$c;
 }
 
function setData() {
(string)$P = $this->a + $this->b + $this->c;
echo 'Периметр: '.$P.' см ';
(string)$S = sqrt($P * ($P-$this->a) * ($P-$this->b) * ($P-$this->c));
echo 'Площадь: '.$S.' см.кв';
}
 
function getData() {
echo $this->setData();
}
 
function __destruct() {}
 
}
 
(int)$storona_A = 3;
(int)$storona_B = 8;
(int)$storona_C = 7;
 
(object)$Triangle = new Student($storona_A,$storona_B,$storona_C);
(string)$Triangle->getData();

//Author VITAMIN

#6
Забыл написать, важно в ооп использовать "табуляцию" кода
PHP

class testclass
{
    public function __construct ()
    {
        echo 'test';
    }
}
#7
Это как-то влияет на результат или оптимизацию кода?..)

Разве что на читабельность,в отдельных случаях.
#8
binner, данет, на читабельность, согласись, лепить всё в одну кучу, при чем ооп - это порнуха.
#9
3KZO, Если большая вложеность конструкций и если работаешь в блокноте,без IDE или спец текст редакторов.
#10
у меня нет ничего кроме блоктона))

2 таба и вот тебе читабельность кода))
#11
В качестве полезного кода, выкладываю мой класс пользователя. Писался для моего движка на MVC.

PHP
<?php

class User
{
    
    private $dbhandler;
    
    public function __construct ()
    {
        
        $this->dbhandler = dbhandler::getInstance ();
        
        // Выполнение операций с авторизированным пользователем
        $_SESSION['logged'] = (int) $_SESSION['logged'];
        if (isset ($_SESSION['logged'])) {
            
            $user = $this->find ((int) $_SESSION['logged']);
            if (!empty ($user)) {
                
                if (time()-$user['joinDate']>=15) {
                    
                    $q=$this->dbhandler->prepare ('UPDATE `user` SET `joinDate`=? WHERE (`id`=?)');
                    $q->execute (array (time(), $user['id']));
                    
                }

            }

        }
        
    }
    
    /** Получить данные пользователя по id (идентификатору)
     * 
     * @param int $id идентификатор
     */
    public function find ( $id )
    {
        
        $q=$this->dbhandler->prepare ('SELECT * FROM `user` WHERE (`id`=?)');
        $q->execute (array ($id));
        if ($q->rowCount ()!=0) {
            
            $user = $q->fetch ();
            
            return $user;
            
        }
        
    }
    
}
#12
Объясните что это за чудо такое? Трудный язык или нет?
#13
Tera, плюсы в очень удобной работе. минусы только в том что работает на чуть-чуть медленней гавна на процедурках)
нет, не трудный.
#14
Что значить говна на процедурках?
Грамотный программист и на процедурке все по полочкам разложит.
ООП не пихают куда попало.
#15
binner, Нормальные программисты не пишут на процедурке.
#16
лол
#17
http://govnokod.ru/16512
1. Создать массив чисел от 1 до 100. Вывести все элементы массива, которые кратны 3 и не кратны 12. (ООП головного мозга)

И таких примеров много..
#18
binner, Ты ооп понимаешь?
#19
Да,но его не стоит пихать во все места,т.к это не оправдывает себя.
#20
binner, А кто написал, что его стоит впихивать куда попало?
Страница 1 из 2 · Всего записей: 22