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

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

27.05.2012, 19:06. Показов 8909. Ответов 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
Ответ Создать тему
Новые блоги и статьи
BitTorrent (версия 4.3.9) и Меню Настройки
russiannick 15.11.2026
В меню Настройки можно отключить автоматическое обновление программы. Карта этого меню приложена ниже. Нужный пункт выделен красным. Сервис Настройки Поведение
Транслитерация текста с кириллицы на латиницу (вариант №3)
Maks 15.11.2026
Обновленная версия предыдущей обработки. Изменения коснулись букв: Ъ, Ы, Ь, Э, отображения которых зависят от положения реквизита "Транслитерация имён". Изменено отображение буквы Й. Добавлена. . .
Транслитерация текста с кириллицы на латиницу (вариант №2)
Maks 13.11.2026
Обновленная версия ранее созданной обработки. Добавлено: - Проверка исходного текста на кириллицу, через обращение к стандартной функции "ТолькоКириллицаВСтроке" из общего модуля. . .
Часы с термометром и праздничным календарем
yariko 12.11.2026
Сегодня мы рассмотрим как можно сделать отличные многофункциональные часы. Итак, поставим конкретную задачу: разработать часы с календарем, двумя термодатчиками, выводом поздравительных сообщений. . .
Транслитерация текста с кириллицы на латиницу (вариант №1)
Maks 11.11.2026
Решил облегчить жизнь себе и коллегам админам при создании электронных почтовых ящиков для пользователей, в результате написал обработку "Транслитерация текста" с кириллицы на латиницу, а в ней. . .
Книги по геймдизайну, левел-дизайну, игровым механикам и проектированию игрового опыта
8Observer8 08.11.2026
Содержание блога | English Version 1. 2003 - 06 - Designing Virtual Worlds (1st Edition) Автор: Richard A. Bartle | Объем: 768 стр. Ссылки: Amazon . . .
Как только я захожу к себе в свою комнату я сразу же с себя снимаю свои трусы. Ответ от Джемени ИИ.
zorxor 08.11.2026
Джемени, как только я захожу к себе в свою комнату я сразу же с себя снимаю свои трусы. Многие люди, возвращаясь домой, сразу переодеваются в максимально свободную одежду или вовсе предпочитают. . .
Паттерн очереди действий/команд (Action / Command Queue). Система очереди действий и кат-сцен с SDL3 Callbacks, cglm и OpenGL
8Observer8 07.11.2026
Содержание блога | English Version Руководство для начинающих по реализации паттерна очереди действий/ команд (Action / Command Queue) на C++ (C++20) с использованием официального SDL3 Callbacks. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru