Forum Webscript.Ru

Программирование => PHP => Тема начата: Abram от 04 Марта 2003, 11:37:38

Название: Объекты
Отправлено: Abram от 04 Марта 2003, 11:37:38
В каких случаях лучше использовать объекты?  
Я как-то не могу научится мыслить объектно. Ведь как-то понятнее использовать функции. Или объекты выполняются быстрее?
Может ссылок подкиньте на статьи где все описано понятно и есть побольше примеров
Название: Объекты
Отправлено: Меняздесьдавнонет от 04 Марта 2003, 13:39:10
В PHP, в силу специфики его использования, практически не встречаются случаи, когда применение объектов было бы оправдано чем-то, кроме желания программиста.

Основные три признака объектов - инкапсуляция наследование полиморфизм.
введи эти три слова в яндексе и почитай.
а потом подумай, где они тебе пригодятся.
Если придумаешь, то используй на здоровье.

По моему личному опыту, даже функции в PHP нужны очень редко.
Название: Объекты
Отправлено: Макс от 04 Марта 2003, 19:22:34
Цитировать
В каких случаях лучше использовать объекты?
сразу же возникает вопрос - для кого лучше? для пхп или для программера? Работа с классами немного медленнее, но для некоторых более удобная.
Сам я классы почти не пишу, хватает pear + adodb + dbtree
И если есть возмжность использовать готовые классы, чтобы сократить время написания скрипта - использую без всяких колебаний (если скорость скрипта от этого не пострадает значительно)
Название: Объекты
Отправлено: Stas от 05 Марта 2003, 02:37:30
Abram,
chtob nauchitsia myslit\' objectno uchi javu..

A nashet bespoleznosti objectov v php, ne soglasen. Vsio zavisit ot razmera programmy/proekta..
Название: Объекты
Отправлено: Diesel от 05 Марта 2003, 10:26:11
ИМХО. Обьекты лучше использовать для написания библиотек. При работе над большим проектом лучше создать отдельный файл в котором будут все функции используемые в проекте. Коначно если эти функции никак друх сдругом не связанны, забуть про обьекты. Но например если проект работает с HTTP лучше оформит это как класс со своими методами типа set_socket, send_query. Обьекты в пхп никакого приемущества не дают, но это продолжение структурированного программирования, поэтому их стоит применять хотябы для красоты и понятности кода. На счёт PEAR я содной строны согласен, но с другой не лучше ли потратить время но написать что то  с нуля. Конечно не надо писать свой PHP но несложные вещи типа авторизации, сессий, отсылки писем с атачами.... Нужно знать КАК это всё работает и только потом использовать это готовое, зная КАК это работает.
Название: Объекты
Отправлено: USE от 05 Марта 2003, 15:03:37
Цитировать
По моему личному опыту, даже функции в PHP нужны очень редко.

покажи несколько исходников своих, а то аж интересно стало (из чистого любопытства)
Название: Объекты
Отправлено: Меняздесьдавнонет от 05 Марта 2003, 15:14:50
http://ronet.ru/sess.htm например.

Структура-то у PHP скрипта линейная. Отработать и выдать результат.
Вспомогательных функций у меня очень мало.
функция доставания из бд одной строки и конструктор форм.
Остальное - PHP.
В нем все и так есть.

Ну, или вот - пример с использованием функций.
http://www.ronet.ru/archive.phps
Название: Объекты
Отправлено: Bang от 05 Марта 2003, 15:31:33
RomikChef
можно про конструктор форм по-подробнее? у меня есть свой, но интересно, как это делают другие.

интересно, например, каким образом ты передаешь в него данные?

update: впрочем, снимаю вопрос, вижу это на http://www.ronet.ru/archive.phps
Название: Объекты
Отправлено: USE от 05 Марта 2003, 15:56:43
понял, все просто :) я почему-то приверженец использования функций и объектов. пишешь долго, зато используешь быстро и удобно.
Название: Объекты
Отправлено: Меняздесьдавнонет от 05 Марта 2003, 16:35:14
А я люблю писать быстро, коротко и легко видоизменяемо.
А эти ваши классы такие неповоротливые.
я тоже приверженец функций, но тольо на месте, когда одна и та жоперация действительно часто встречается в разных местах.
а писать функцию, чтобы вызвать ее один раз, или класс, постоянно дописывая в него добавления на все случаи жизни - это увольте.
Но свою позицию я не навязваю.

Цитировать
у меня есть свой, но интересно, как это делают другие

идеи носятся в воздухе и рожаютсяпочти одновременно.
http://php.spb.ru/phpLoginForm/
http://xpoint.ru/cgi-bin/forum.cgi?action=thread&id=18338

вот милые твоему сердцу навороченные классы.
енджой.
Название: Объекты
Отправлено: Bang от 05 Марта 2003, 17:01:38
RomikChef
спасибо за ссылки
а с чего ты взял, что моему сердцу милы навороченные классы? :) мне милы свои собственные, они не навороченные, а какие мне надо. просто интересно было посмотреть, как ты решаешь подобные задачи.
Название: Объекты
Отправлено: Макс от 05 Марта 2003, 19:42:31
Diesel
Цитировать
но с другой не лучше ли потратить время но написать что то с нуля
угу, добавить кучу багов, потерять кучу времени на отладку.
[off]Вообще я заметил, что только пхп-шникик такие трудолюбивые, все пишут сами. В перле или яве программера без стыда использую чужие классы[/off]

Цитировать
но несложные вещи типа авторизации
pear::auth
Цитировать
сессий
http:session (хотя не понимаю чем не устраивает стандартный механизм сессий в пхп)
Цитировать
отсылки писем с атачами
pear::mail::mime

Цитировать
Нужно знать КАК это всё работает и только потом использовать это готовое, зная КАК это работает.
вот в этом ты прав на все 100%
Название: Объекты
Отправлено: AliMamed от 05 Марта 2003, 20:55:24
[off]предлагаю добавить в faq. очень полезный топик имхо[/off]
Название: Объекты
Отправлено: Diesel от 05 Марта 2003, 22:23:20
Макс
Вот видишь что ты с последним утверждением согласился, но КАК ты будешь знать как всё работает если берёш готовое. Ты бы еще посоветовал использовать готовые скрипты типа гостевых книг и форумов. Лучшее обучение это опыт. И в багах нет ничего плохого. Это тоже опыт. Чем больше ты времени потратишь сейчас тем легче будет потом... А классы нужно использовть там где нужно. Там где надо из данных и методов их обработки сделать что то целое и взаимосвязанное. Я ведь тоже процедурный программист, Паскаль так воспитал, но трезво оцениваю достоинсва функций и обьектов. Всего как говорится понемногу, у всего есть право на жизнь :-)
Название: Объекты
Отправлено: Xander от 05 Марта 2003, 22:29:17
[OFF]
только перед добавлением в FAQ - почистите. А то я уже чуть отвечать не начал. Зафлудим нафиг.
[/off]
Название: Объекты
Отправлено: Diesel от 05 Марта 2003, 22:32:47
Посморел сейчас ссылки и понял как мне необходим конструктор форм... Будем писать :-) В обьектах....
Название: Объекты
Отправлено: Макс от 05 Марта 2003, 23:02:48
Diesel
1. Код классов pear проверяется перед добавлением в репозитарий.
2. Он постоянно обновляется, баги исправляются
3. Также его код постоянно в pear-dev рассылке обсуждается

Это я все к тому что не нужно сравнивать эти классы с гостевыми книгами. Кстати чем тебе phpBB не нравиться ? ИМХО нормальный форум.
Цитировать
но КАК ты будешь знать как всё работает если берёш готовое.

1. Нужно читать документацию.Это чисто теоретическая подготовка и использование готовых классов не избавляет прогаммера от обучения.
2. PEAR-овские искходники вполне  читабельные и все пишутся в одном стиле - читай на здоровье. Никто не запрещает тебе провести пару тестов, чтобы посмотреть как они работают и работают ли они вообще.
3. Я не считаю себя самым умным, и вполне допускаю что кто-то может написать класс лучше чем я. И мне будет очень приятно воспользоваться результатами его труда ;)
4. Я не  призываю использовать все подряд. Я например не очень одобряю использование pear::cache (имхо они слишком все усложнили и это кеширование будет нормально работать только при наличии каких-то оптимизаторов типа PHPAccelerator)
Название: Объекты
Отправлено: Макс от 05 Марта 2003, 23:05:00
Цитировать
Посморел сейчас ссылки и понял как мне необходим конструктор форм... Будем писать :-) В обьектах....
pear::html::quickForm ;)
Название: Объекты
Отправлено: Diesel от 05 Марта 2003, 23:47:10
Да я же тоже не кого не отговариваю от того что бы пользоваться готовым. Я даже допускаю что некоторые читают докумкнтацию, и даже сам код... Но я тоже не считаю себя гением и именно поэтому не могу позволить себе брать готовое. Кстати смотрел я некоторые классы из PEAR так ничего поражающего воображение не увидел. Вот ещё годик попишу сам а тогда может стану пользоваться всякими PHPLib да REAR... Но ещё раз говорю - ИМХО...