3 / 3 / 3
Регистрация: 03.01.2012
Сообщений: 146
1

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

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

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

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

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

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

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

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

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

Добавлено через 1 минуту
Вывод фотки например да?
0
2449 / 2299 / 597
Регистрация: 27.05.2011
Сообщений: 7,832
07.06.2012, 13:45 28
Цитата Сообщение от devilin Посмотреть сообщение
это сколько объектов будет в одной галереи?1000 фоток - 1000 объектов?
вы что будете выкладывать одну страницу 1000 фоток ? обычно пагинация идет
0
3 / 3 / 3
Регистрация: 03.01.2012
Сообщений: 146
07.06.2012, 13:46  [ТС] 29
crautcher, я уже ответил на это)естественно нет)
0
2449 / 2299 / 597
Регистрация: 27.05.2011
Сообщений: 7,832
07.06.2012, 13:52 30
Цитата Сообщение от devilin Посмотреть сообщение
какие методы будут у него?ссвойства
ну фото значит урл фотки , путь , автор , время заливки , там рейтинг какойто , хеш , высота длина , описание , тайтл - да много всего может быть , мы слишком обстрактно говорим .
0
3 / 3 / 3
Регистрация: 03.01.2012
Сообщений: 146
07.06.2012, 13:53  [ТС] 31
crautcher, Свойства как раз таки я понял)А методы?Вывод фотки?удалене фотки?
Ну я и хочу абстрактно говорить)Кстати кто может посоветовать книгу о ООП чтоб для чайника?)
0
26 / 26 / 1
Регистрация: 30.09.2011
Сообщений: 196
07.06.2012, 13:54 32
Ладно предположим объект это фото. А какие методы будут у него?ссвойства ясно ширина высота например.
Методов может и не быть. С фотками там простая структура. У галерей уже могут быть методы - выбрать фотки удалить, добавить.
Еще есть такая полезная штука как паттерн Active Record реализаций и примеров полно. как раз подходит для сущностей которые хранятся в БД по принципу строка-объект..
0
14 / 14 / 7
Регистрация: 31.03.2011
Сообщений: 118
17.06.2012, 22:18 33
Доброго времени суток! Я вот тоже решил подружиться с ООП в 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 34
экранирование где?

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

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

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

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 38
что так? это работает?
0
14 / 14 / 7
Регистрация: 31.03.2011
Сообщений: 118
18.06.2012, 10:57 39
Василий Макогон, работает... примерно так:
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 40
а если много параметров в массиве и запросе? а если они не совпадают?
0
18.06.2012, 11:02
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
18.06.2012, 11:02
Помогаю со студенческими работами здесь

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

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

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

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


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

Или воспользуйтесь поиском по форуму:
40
Ответ Создать тему
Опции темы

Новые блоги и статьи
Книги и учебные ресурсы по C#
InfoMaster 08.01.2025
Базовые учебники и руководства Одной из лучших книг для начинающих является "C# 10 и . NET 6 для начинающих" Эндрю Троелсена и Филиппа Джепикса . Книга последовательно раскрывает основные концепции. . .
Что такое NullReferenceEx­­­ception и как исправить?
InfoMaster 08.01.2025
NullReferenceException - одно из самых распространенных исключений, с которым сталкиваются разработчики на C#. Это исключение возникает при попытке обратиться к членам объекта (методам, свойствам или. . .
Что такое Null Pointer Exception (NPE) и как это исправить?
InfoMaster 08.01.2025
Null Pointer Exception (NPE) - это одно из самых распространенных исключений в Java, которое возникает при попытке использовать ссылку на объект, значение которой равно null. Это исключение относится. . .
Русский язык в консоли C++
InfoMaster 08.01.2025
При разработке программ на C++ одной из частых проблем, с которой сталкиваются русскоязычные программисты, является корректное отображение кириллицы в консольных приложениях. Эта проблема особенно. . .
Telegram бот на C#
InfoMaster 08.01.2025
Разработка ботов для Telegram стала неотъемлемой частью современной экосистемы мессенджеров. C# предоставляет мощный и удобный инструментарий для создания разнообразных ботов, от простых. . .
Использование GraphQL в Go (Golang)
InfoMaster 08.01.2025
Go (Golang) является одним из наиболее популярных языков программирования, используемых для создания высокопроизводительных серверных приложений. Его архитектурные особенности и встроенные. . .
Что лучше использовать при создании класса в Java: сеттеры или конструктор?
Alexander-7 08.01.2025
Вопрос подробнее: На вопрос: «Когда одновременно создаются конструктор и сеттеры в классе – это нормально?» куратор уточнил: «Ваш класс может вообще не иметь сеттеров, а только конструктор и геттеры. . .
Как работать с GraphQL на TypeScript
InfoMaster 08.01.2025
Введение в GraphQL и TypeScript В современной разработке веб-приложений GraphQL стал мощным инструментом для создания гибких и эффективных API. В сочетании с TypeScript, эта технология. . .
Счётчик на базе сумматоров + регистров и генератора сигналов согласования.
Hrethgir 07.01.2025
Создан с целью проверки скорости асинхронной логики: ранее описанного сумматора и предополагаемых fast регистров. Регистры созданы на базе ранее описанного, предполагаемого fast триггера. То-есть. . .
Как перейти с Options API на Composition API в Vue.js
BasicMan 06.01.2025
Почему переход на Composition API актуален В мире современной веб-разработки фреймворк Vue. js продолжает эволюционировать, предлагая разработчикам все более совершенные инструменты для создания. . .
Архитектура современных процессоров
inter-admin 06.01.2025
Процессор (центральный процессор, ЦП) является основным вычислительным устройством компьютера, которое выполняет обработку данных и управляет работой всех остальных компонентов системы. Архитектура. . .
История создания реляционной модели баз данных, правила Кодда
Programming 06.01.2025
Предпосылки создания реляционной модели В конце 1960-х годов компьютерная индустрия столкнулась с серьезными проблемами в области управления данными. Существовавшие на тот момент модели данных -. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru