Форум программистов, компьютерный форум, киберфорум
PHP: ООП
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.63/40: Рейтинг темы: голосов - 40, средняя оценка - 4.63
 Аватар для devilin
3 / 3 / 3
Регистрация: 03.01.2012
Сообщений: 146

Не знаю с чего начать в ООП

27.05.2012, 19:06. Показов 8700. Ответов 55
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Народ, вообщем дело такое, вроде бы прочел не одну книгу по ооп на php теоритически вроде все знаю, но не знаю как начать писать сайт. МОгли бы вы выложить пример не большого сайта на ооп. Вопрос адресован профи)Очень жду и надеюсь на Вас.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
27.05.2012, 19:06
Ответы с готовыми решениями:

Не знаю с чего начать
Здравствуйте! Я решил начать изучать OpenGl и не знаю какую книгу выбрать на русском языке. Посоветуйте что-нибудь.

Не знаю с чего начать:(
Товарищи программисты подскажите с чегко начать писать данную программу: Может кто нибудь сможет написать последовательность...

Не знаю с чего начать
Здравствуйте! Я начинающий, помогите мне пожалуйста с API. Нужно, чтобы приложение выдавало картинки, по тегам введенным в поисковой...

55
 Аватар для devilin
3 / 3 / 3
Регистрация: 03.01.2012
Сообщений: 146
07.06.2012, 11:18  [ТС]
Студворк — интернет-сервис помощи студентам
Давайте по другому. Вот сайт-визитка например. Из каких объектов он состоит?
Гостевая книга, галерея,новости?
0
29 / 29 / 4
Регистрация: 08.12.2009
Сообщений: 106
07.06.2012, 12:26
Ну вот например сейчас любой сайт, даже сайт-визитка не обходится без БД, вот попробуй для практики написать класс работы с БД и класс который выводит контент....
0
 Аватар для crautcher
2450 / 2301 / 597
Регистрация: 27.05.2011
Сообщений: 7,845
07.06.2012, 12:27
Цитата Сообщение от devilin Посмотреть сообщение
Из каких объектов он состоит?
Гостевая книга, галерея,новости?
по разному можно проектировать,ну скажем
каждая новость объект
юзер объект
каждая фотка в галереи объект
0
26 / 26 / 1
Регистрация: 30.09.2011
Сообщений: 196
07.06.2012, 13:28
Если нужно ООП ради ООП то без разницы что будет объектами.
0
 Аватар для devilin
3 / 3 / 3
Регистрация: 03.01.2012
Сообщений: 146
07.06.2012, 13:29  [ТС]
GuardNW, класс для работы с БД хоть как-то ясно)
crautcher, это сколько объектов будет в одной галереи?1000 фоток - 1000 объектов?
0
26 / 26 / 1
Регистрация: 30.09.2011
Сообщений: 196
07.06.2012, 13:35
класс для работы с БД хоть как-то ясно)
ясно - это если ясно что для этого используется как правило не класс вообще а синглетон.

это сколько объектов будет в одной галереи?1000 фоток - 1000 объектов?
а ты собираешся вытаскивать на страницу 1000 фоток сразу?
0
 Аватар для devilin
3 / 3 / 3
Регистрация: 03.01.2012
Сообщений: 146
07.06.2012, 13:39  [ТС]
caballero, да про шаблон одиночку я слышал тоже.
Конечно нет)Ладно предположим объект это фото. А какие методы будут у него?ссвойства ясно ширина высота например.

Добавлено через 1 минуту
Вывод фотки например да?
0
 Аватар для crautcher
2450 / 2301 / 597
Регистрация: 27.05.2011
Сообщений: 7,845
07.06.2012, 13:45
Цитата Сообщение от devilin Посмотреть сообщение
это сколько объектов будет в одной галереи?1000 фоток - 1000 объектов?
вы что будете выкладывать одну страницу 1000 фоток ? обычно пагинация идет
0
 Аватар для devilin
3 / 3 / 3
Регистрация: 03.01.2012
Сообщений: 146
07.06.2012, 13:46  [ТС]
crautcher, я уже ответил на это)естественно нет)
0
 Аватар для crautcher
2450 / 2301 / 597
Регистрация: 27.05.2011
Сообщений: 7,845
07.06.2012, 13:52
Цитата Сообщение от devilin Посмотреть сообщение
какие методы будут у него?ссвойства
ну фото значит урл фотки , путь , автор , время заливки , там рейтинг какойто , хеш , высота длина , описание , тайтл - да много всего может быть , мы слишком обстрактно говорим .
0
 Аватар для devilin
3 / 3 / 3
Регистрация: 03.01.2012
Сообщений: 146
07.06.2012, 13:53  [ТС]
crautcher, Свойства как раз таки я понял)А методы?Вывод фотки?удалене фотки?
Ну я и хочу абстрактно говорить)Кстати кто может посоветовать книгу о ООП чтоб для чайника?)
0
26 / 26 / 1
Регистрация: 30.09.2011
Сообщений: 196
07.06.2012, 13:54
Ладно предположим объект это фото. А какие методы будут у него?ссвойства ясно ширина высота например.
Методов может и не быть. С фотками там простая структура. У галерей уже могут быть методы - выбрать фотки удалить, добавить.
Еще есть такая полезная штука как паттерн Active Record реализаций и примеров полно. как раз подходит для сущностей которые хранятся в БД по принципу строка-объект..
0
 Аватар для Lawlietb32
14 / 14 / 7
Регистрация: 31.03.2011
Сообщений: 118
17.06.2012, 22:18
Доброго времени суток! Я вот тоже решил подружиться с ООП в PHP почитал тему и решил попробовать написать небольшой класс работы с БД... хотелось бы услышать мнения людей, которые в этом деле уже давно)

Вот собственно код:
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
<?php
class DB 
{
    function DB()
    {
        $mylocation = "localhost";
        $mydb = "TEST";
        $mylogin = "root";
        $mypass = "";
        
        $dbcnx = @mysql_connect($mylocation, $mylogin, $mypass);
        @mysql_select_db($mydb, $dbcnx);
    }
    
    function Add() // первый аргумент = таблица, а дальше значения
    {
        if (func_num_args() > 1)
        {
            $sql = "INSERT INTO " . func_get_arg(0) . " VALUES ('NULL', ";
            for ($i=1; $i<func_num_args(); $i++)
            {
                if ($i == func_num_args()-1)
                    $sql = $sql . "'" . func_get_arg($i) . "');";
                else
                    $sql = $sql . "'" . func_get_arg($i) . "', ";
            }
            echo $sql;
            mysql_query($sql);
        }
    }
    
    function get_id_field($tbl)
    {
        $sql = mysql_query("SHOW COLUMNS FROM " . $tbl);
        while ($res = mysql_fetch_array($sql))
        {
            if ($res['Key'] == 'PRI' && $res['Extra'] == 'auto_increment')
                return $res['Field'];
        }
    }
    
    function Edit() // 1 аргумент - таблица, 2 - ID, 3 - изменяемый столбец, 4 - новое знач.
    {
        if (func_num_args() == 4)
        {
            $tbl = func_get_arg(0);
            $id = func_get_arg(1);
            $column = func_get_arg(2);
            $val = func_get_arg(3);
            $id_field = $this->get_id_field($tbl);
            $sql = "UPDATE " . $tbl . " SET " . $column . " = '" . $val . "' WHERE " . $id_field . " = '" . $id . "';";
            mysql_query($sql);
        }
    }
    
    function Delete() // 1 аргумент - таблица, 2 - ID
    {
        if (func_num_args() == 2)
        {
            $tbl = func_get_arg(0);
            $id = func_get_arg(1);
            $id_field = $this->get_id_field($tbl);
            $sql = "DELETE FROM " . $tbl . " WHERE " . $id_field . " = '" . $id . "';";
            mysql_query($sql);
        }
    }
}
?>
Естественно... я писал на скорую руку... без обработок исключительных ситуаций и прочего... просто хотел по быстрей показать, чтобы молги быстрей направить в нужном русле))
0
 Аватар для Василий Макогон
270 / 226 / 11
Регистрация: 20.04.2012
Сообщений: 817
17.06.2012, 22:48
экранирование где?

ты пошел не по тому пути. ты не должен в классе СУБД писать методы типа Delete, Edit. Там должен быть один полезный метод - query(), принимающий первым параметром SQL запрос, а последующими (как вариант) - данные

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

посмотри как сделано расширение mysqli или PDO - их API. и все поймешь.
1
 Аватар для Lawlietb32
14 / 14 / 7
Регистрация: 31.03.2011
Сообщений: 118
18.06.2012, 01:08
Василий Макогон, ну да... с функцией query было бы все короче) Не могу понять как реализовывается их prepare со знаками вопросов? Как они потом подменяются на нужные значения? Глобальные переменные класса?
0
 Аватар для Василий Макогон
270 / 226 / 11
Регистрация: 20.04.2012
Сообщений: 817
18.06.2012, 01:24
Цитата Сообщение от Lawlietb32 Посмотреть сообщение
Не могу понять как реализовывается их prepare со знаками вопросов? Как они потом подменяются на нужные значения? Глобальные переменные класса?
func_get_args
глобальные переменные и ООП не сочетаются
1
 Аватар для Lawlietb32
14 / 14 / 7
Регистрация: 31.03.2011
Сообщений: 118
18.06.2012, 02:05
А если так?

PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
class DB 
{
    var $sql;
    
    function prepare($sql)
    {
        $this->sql = $sql;
    }
    
    function execute($a)
    {
        while(count($a) > 0)
            $this->sql = preg_replace('/\?/', array_shift($a), $this->sql, 1);
        mysql_query($this->sql);
    }
0
 Аватар для Василий Макогон
270 / 226 / 11
Регистрация: 20.04.2012
Сообщений: 817
18.06.2012, 10:38
что так? это работает?
0
 Аватар для Lawlietb32
14 / 14 / 7
Регистрация: 31.03.2011
Сообщений: 118
18.06.2012, 10:57
Василий Макогон, работает... примерно так:
PHP
1
2
3
4
5
$ar = array();
$ar[] = "123";
$mybd = new DB;
$mybd->prepare("INSERT INTO users VALUES('NULL', ?)");
$mybd->execute($ar);
0
 Аватар для Василий Макогон
270 / 226 / 11
Регистрация: 20.04.2012
Сообщений: 817
18.06.2012, 11:02
а если много параметров в массиве и запросе? а если они не совпадают?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
18.06.2012, 11:02

Не знаю с чего начать
Добрый день! Мне нужно сделать хранилище данных формата pdf с возможностью поиска. В институте изучал Access, но после работать с ним...

Не знаю с чего начать
Доброго времени суток всем. Нужна программа для склейки видео/звуковых дорожек MP4. При этом видео всегда одной продолжительности. Будет...

Не знаю с чего начать писать
Ребята! Доброго времени суток. В общем дали задание написать программу точней web-приложение которое будит работать на всех платформах...

не знаю с чего начать проект
Здравствуйте! Поставили задачу написать программу, да такую, чтобы могли пользоваться 6 пользователей одновременно. И результат...

сайт музей - не знаю с чего начать
Помогите пожалуйста. Я мало знаю о веб-программирования, а тут такое задание: разработать систему анализа и отображения выставочной...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
40
Ответ Создать тему
Новые блоги и статьи
сукцессия 43. Вторая научная статья за месяц- прайминг и гатгил
anaschu 25.07.2026
две стороны одной монеты
Более приземисто - Эстафету хвоста в .cdl (деревья эстафеты в сад).
Hrethgir 24.07.2026
В будущем, после написания блока инверсии обхода дерева (эстафеты хвоста), я планирую вернуться к нашему прошлому разговору о том, обладают ли знания целеполаганием. Тогда я пришел к выводу, что. . .
Вот представьте что вам дали бессмертие.
kumehtar 24.07.2026
Вот представьте что вам дали бессмертие, ничего более не меняя. Вообще ничего, только бессмертие в нынешнем виде. Рады были бы? Что бы вы тут делали всё это время? Никакой пенсии. Никакого нового. . .
сукцессия 41
anaschu 24.07.2026
Численная верификация бифуркации в агентной модели лесной сукцессии: от одного параметра к ансамблю Автор: пользователь @Shumilov_AS | Раздел: Прикладная математика / Численные методы Кратко. . .
сукцессия 40. Ансамблевая кластерная параметризаци, часть 1.
anaschu 24.07.2026
Пр# Сопровождение научной статьи ИИ-ассистентом: подготовка публикации и калибровка агентно-ориентированной модели сукцессии микоризных систем **Полевые заметки о двухнедельной совместной работе**. . .
Теория всего 12. ВГК на планете в стратегической игре "терра"
anaschu 21.07.2026
### Главные семантические изменения и дешифровка новой физики 1. **`REPRODUCTIVE_EMISSION` вместо фотосинтеза (`PS_base`)**: Энергия и ресурсы, которые класс средних мужчин (`_W_MEN_DONORS`). . .
Публикация отклонённая на хабре. Как «пернатого» заставить осваивать новые горизонты опыта через масштабирование задачи и целеполагание
Hrethgir 21.07.2026
https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11948&stc=1&d=1784657928 Привет Хабр. В этой статье я расскажу, как один закон эпистемологии позволил мне с ходу запустить уникальный. . .
Теория всего 11. Основные параметры
anaschu 21.07.2026
Дешифровка тензорного ядра Soil Chemistry 2. 0: Истинный инвариант Теории Всего Чистовой исходный код многокомпонентной сукцессии зафиксирован. Модель оперирует единым вектором состояния. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru