[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Сделай лучше
tp123
Доброе время суток. Начинаю переходит на ооп. Написал небольшой Класс для работы в Google API. посоветуйте, что можно переделать, что изменит или вообще переписать.

<?php
class
Google extends http
{

public function GetPage($site)
{
for($x=0;$x<64;)
{
$page = $this-> get('http://ajax.googleapis.com/ajax/services/search/web?v=1.0&q=site:' . $site . '&start=' . $x . '');
$json = json_decode($page);
$this-> adaptation($json,$site);
$x++;
}

}


public function adaptation($json,$site)
{
foreach ($json->responseData->results as $resultjson)
{

$info= '' . $resultjson->url . ' ; ' . $this->Clear($resultjson->title) . ' ; ' . $this->Clear($resultjson->content) . '';
echo $info;
$this-> WriteCSV($info,$site);
}

}


//удаляем лишнее
public function Clear($data)
{
$vowels = array("<b>...</b>","&quot",";");
$freshcontent = str_replace($vowels, "", $data);
return $freshcontent;
}
//записываем
function WriteCSV($info,$site)
{
$tyday = date("d.m.y");
$file_name= '' . $site . '_' . $tyday . '_g.csv';
$fp = fopen($file_name, 'a+');
$test = fwrite($fp, $info ."\n"); // Запись в файл
fclose($fp); //Закрытие файла

}
}

?>




Спустя 2 часа, 20 минут, 56 секунд (16.02.2012 - 02:47) caballero написал(а):
Тут ООП и не пахнет. Просто несколько функций собранны в одном классе

Спустя 10 часов, 33 минуты, 32 секунды (16.02.2012 - 13:20) tp123 написал(а):
Я так и знал (((

Спустя 2 минуты, 41 секунда (16.02.2012 - 13:23) inpost написал(а):
Первый признак ООП - наследование и взаимодействие между объектами.
В твоём примере простой пакет функций, где присутствует пустая надпись: "extends http"
Так что это процедурный стиль.

Спустя 16 минут, 54 секунды (16.02.2012 - 13:40) tp123 написал(а):
inpost, посоветуйте матерьял для прочтения и дальнейщего роста.

Спустя 11 минут, 9 секунд (16.02.2012 - 13:51) m4a1fox написал(а):
tp123
Цитата
посоветуйте матерьял для прочтения и дальнейщего роста.

Вам конкретное что-то нужно? google уже не помогает? или ошибиться в выборе лит-ры боитесь?

Спустя 7 минут, 4 секунды (16.02.2012 - 13:58) tp123 написал(а):
Не совсем. Гугул всегда в помошь, нужно навести на истенный путь, А не попасть в дебри Евгени-паппововский заблуждений и не перейти на темную сторону!

Привиду такой пример. Когда начал изучать php попалась книжка в которой автор не могу объяснить зачем ставиться ; и где она применяется, говорил просто ставьте, потом сами поймете и научитесь)))) полсе этого Я сжег к чертям книжку)

Спустя 11 минут, 35 секунд (16.02.2012 - 14:10) inpost написал(а):
tp123
Увы, не помогу. Все материалы что я читал не привели даже 1% желания у меня использовать в практике ООП.

Спустя 8 минут, 44 секунды (16.02.2012 - 14:18) m4a1fox написал(а):
tp123
Ну ХЗ, конечно... можете попробовать... вот списочек:
  • http://www.softtime.ru/php5/?id_article=112
  • http://www.williamspublishing.com/Books/978-5-8459-1586-3.html
  • http://i-vd.org.ru/books/php/object-oriented.shtml
  • http://www.softtime.ru/php5/?id_article=118 (Глава 21)
  • http://samouchka.net/ebooks/bookwebdesign/php/31702-php-5-v-podlinnike-2-e-izdanie.html

Спустя 17 минут, 29 секунд (16.02.2012 - 14:36) bodja написал(а):
tp123
Вам нужен язык ,где вы несможете даже Hello Word! написать ,не используя обьекты.
После этого и прийдет понимание зачем они нужны ,какие должны быть и т.д.
ПХП слишком молод для ООП ,напьетесь много воды.

Спустя 12 минут, 24 секунды (16.02.2012 - 14:48) sharki написал(а):
bodja
Согласен.
Цитата
ПХП слишком молод для ООП ,напьетесь много воды.

80% уже реализовано, даже больше наверное. Зато как в продвинулся Symphony с применением ООП и ORM в свем фраемворке

Спустя 6 минут, 6 секунд (16.02.2012 - 14:54) tp123 написал(а):
bodja,inpost Уже много раз слушал что php для этого не создан!
m4a1fox, спасибо большое!

Спустя 8 минут, 27 секунд (16.02.2012 - 15:03) inpost написал(а):
tp123
В ПХП4 толкового ООП не было, сайты создавались, все были счастливы.
Потом появился ПХП5, и все как с ума сошли, это "круто". Вместо этого освоили бы технологии соккетов, node.js для постоянного коннекта и т.д. Это даст в 100 раз пользы, чем ООП.
ООП для понтов. Хочешь, чтобы все кругом считали, что ты крутой программист - пользуйся ООП. Вот только будешь ли ты крутым на самом деле...

Спустя 8 минут, 57 секунд (16.02.2012 - 15:12) sharki написал(а):
inpost
Польза в ООП будет только в том случае, если человек активно пользуется паттернами, причем не всяякими там одиночками, а серьезными - фабриками, состояние и т.п

А если совместить ноду и грамотно спроектированный сайт вот это дело.
Цитата
Вместо этого освоили бы технологии соккетов, node.js для постоянного коннекта и т.д.

Только толку от этого? поиграться? если нет прочного фундамента на сервере...


Спустя 2 минуты, 31 секунда (16.02.2012 - 15:14) bodja написал(а):
sharki
PHP не статичен,для визуализаци тоже не годится(от MVC польше понту ,чем толку),
тут хоть с пулемета стреляй ,с ним пока все ясно.

Спустя 8 минут, 8 секунд (16.02.2012 - 15:22) inpost написал(а):
Вот когда созданные объекты будут действовать на уровне сервера, а не на уровне запроса, тогда можно будет говорить про целесообразность ООП, как это делается на прикладных языках.
В целом: объект создался, обработался, вывелся, удалился. Зачем создавать громоздящий объект, если его через 2 строчки echo, придётся удалять... всё это какой-то абсурд.

node.js + sockets - чаты, браузные игрушки, мгновенные сообщения и т.д. и т.п.

Дело жизни:
- Нужна сайт-визитка - ок, процедурка!
- нужен магазинчик - ок, процедурка!
- нужен сайт знакомств - ок, процедурка!
- добавь на сайт живое общение, типо помощи, ну ты помнишь, сам такое делал, так вот тут - процедурка. Повесил его на node.js, стало работать быстрее и удобнее.
- добавь на сайт чат - node.js
- добавь мини-игрушку "шашки" или полноценный сайт шахмат - sockets.io

А что надо заказать, чтобы я сказал, что на процедурке не сделаю, и прям необходим ООП?! Мне в голову не приходит, а вот применения node.js, sockets - огромно. Снова же, если рассматриваем те же соккеты, то у нас ООП будет на стороне сервера, но уже на JS, а не на PHP.

Спустя 1 минута, 44 секунды (16.02.2012 - 15:24) TranceIT написал(а):
Цитата (inpost @ 16.02.2012 - 13:10)
Увы, не помогу. Все материалы что я читал не привели даже 1% желания у меня использовать в практике ООП.

Аналогично. Прочитал не одну книгу, но так и не понял зачем мне это нужно, лишние проблемы только.

Вон у m4a1fox в подписи регулярки на ООП замените, тот же эффект получится.

Спустя 8 секунд (16.02.2012 - 15:24) m4a1fox написал(а):
bodja
Цитата

(от MVC польше понту ,чем толку)

Не соглашусь... чем вам так MVC насолил...? Ведь штука, то не в названии, а в процессе, что оно исполняет... или вы смешиваете логику с видом, у вас в файле 100500 строк кода, где php перемешивается с html+css+js+jq? Суть в разделении, а что это.... mvc или не mvc дело второстепенное....

Спустя 1 минута, 1 секунда (16.02.2012 - 15:25) m4a1fox написал(а):
TranceIT
Не тронь мою подпись....... laugh.gif

Цитата
Прочитал не одну книгу

Какую?

Спустя 4 минуты, 52 секунды (16.02.2012 - 15:30) TranceIT написал(а):
Цитата (m4a1fox @ 16.02.2012 - 14:25)
Какую?

Зандстра и еще одна по проектированию, не помню как называется на обложке синий кубик.

Спустя 3 минуты, 49 секунд (16.02.2012 - 15:34) m4a1fox написал(а):
TranceIT
Цитата
Зандстра

ИМХО. Зандстра, дает готовые паттерны.... разжевывает их.... но нужны и основы... В списке что я привел, последние 2 ссылки.... это книги Котерова и Кузнецова, всем известные, там есть главы посвященные ооп. В них начинаются именно основы...

Спустя 15 секунд (16.02.2012 - 15:34) sharki написал(а):
inpost
А как насчет таких задач как "Мне надо сделать в админке возможность создавать сайты как конструктор!" там в этом конструкторе еще дофига всего и всяких мелочей...

опять функционалку применишь?

Спустя 1 минута, 3 секунды (16.02.2012 - 15:35) sharki написал(а):
m4a1fox
Не там ты ищешь разъяснение и понимание ООП smile.gif

Ищи там где это действительно используется повсеместно, тот же JAVA, или C++. Вот тогда ты поймешь что такое ООП)

Спустя 2 минуты, 24 секунды (16.02.2012 - 15:38) TranceIT написал(а):
m4a1fox
"Я, несмотря на то, что программировал и на C++, и на Java, — люблю использовать процедуры. У меня такое чувство, что всё ООП состоит из превращения уже имеющихся задач в новые. И уже только потом дело доходит до их решения. Конечно, такой подход многое упрощает, но он ужасно неэффективен для разработки небольшого набора взаимосвязанных программ, что, собственно, и является сутью программных разработок для Web."

(с)Стерлинг Хьюз

Спустя 2 минуты, 38 секунд (16.02.2012 - 15:40) TranceIT написал(а):
m4a1fox
Основы я изучал по этому форуму и по тому, что даются в большинстве книг по основам PHP. Коих я прочитал наверно уже с десяток. Парочку в печатном виде потом приобрел.

Спустя 9 минут, 28 секунд (16.02.2012 - 15:50) m4a1fox написал(а):
sharki
Цитата
Ищи там где это действительно используется повсеместно, тот же JAVA, или C++. Вот тогда ты поймешь что такое ООП

Не сомневаюсь, что java и c++ ОО языки.... есть еще и питон... Суть ООП сводится к применению некой общей схемы работы приложения... использование часто повторяющихся моментов и т.д и т.п.

Цитата

"Я, несмотря на то, что программировал и на C++, и на Java, — люблю использовать процедуры. У меня такое чувство, что всё ООП состоит из превращения уже имеющихся задач в новые. И уже только потом дело доходит до их решения. Конечно, такой подход многое упрощает, но он ужасно неэффективен для разработки небольшого набора взаимосвязанных программ, что, собственно, и является сутью программных разработок для Web."

А ни кто и не говорил, что ООП в PHP это панацея... Есть место где стоит пробовать использовать ООП, а есть где обычный стиль подойдет...
Но позвольте, вы не используете PDO? или mysqli у себя?

Спустя 13 минут, 7 секунд (16.02.2012 - 16:03) imbalance_hero написал(а):
sharki
"Мне надо сделать в админке возможность создавать сайты как конструктор!"
Функционалку - врядли, напишу процедурку, может быть даже на классах, но не буду никак городить ООП.

"JAVA, или C++"
Там он необходим, поэтому и важен. Как я уже выше сказал, на прикладном программировании объекты не уничтожаются так просто, как в работе веба. Там действительно это актуально.

" Суть ООП сводится к применению некой общей схемы работы приложения... использование часто повторяющихся моментов"
- Это работа КЛАССОВ и ФУНКЦИЙ, к ООП не относится smile.gif

"вы не используете PDO? или mysqli у себя?"
Использую я mysqli, кроме возможности в ней работать на процедурном уровне, есть так же объективный подход. Я объективный перевел в процедурный, сделал обычный класс синглтон статичным, и пользуюсь им уже как процедурка.

Спустя 19 минут, 17 секунд (16.02.2012 - 16:22) m4a1fox написал(а):
imbalance_hero
Цитата
- Это работа КЛАССОВ и ФУНКЦИЙ, к ООП не относится

Это работа классов и методов.... и еще, как это класс к ООП не относится? А к чему тогда?

Цитата
сделал обычный класс синглтон статичным

Согласен. Но все же сингл, а это уже паттерн, что в свою очередь является ООП стилем.... ИМХО!

Да и вообще.... этот разговор, как и многие другие на форуме ни к чему не приведет... сколько раз уже начинали... одно и тоже... елозим туда сюда и обратно...

Спустя 1 минута, 58 секунд (16.02.2012 - 16:24) bodja написал(а):
Цитата
Не соглашусь... чем вам так MVC насолил...? Ведь штука, то не в названии, а в процессе, что оно исполняет... или вы смешиваете логику с видом, у вас в файле 100500 строк кода, где php перемешивается с html+css+js+jq? Суть в разделении, а что это.... mvc или не mvc дело второстепенное....


Когда мне нужно назначить\изменить фон кнопки при нажатии и не только фон ,но и размеры ,позицию ,слой ,цвет,я пишу так-

на яваскрипте

Цитата
document.geEelementById('button').onclick=function () {
    document.geEelementById('button').style.background="but.jpg";
}


на бейсике

Цитата
Private Sub Button_OnClick()
    Button.background="but.jpg";
End Sub


на Си

Цитата
void Button_onclick():void {
    Button.background="but.jpg";
}


на екшенскрипте
Цитата
private function button_clik(event:Event):void {
    button.bitmapData = img.bitmapData;
}


Да, я мешаю представление и логику и мне не нужны контроллеры-роутеры-шмоутеры и прочая ересь для выхода в нужную точку программы.Мне не нужно лезть в шаблонизатор ,так как обьект как правило содержит в себе весь необходимый набор методов и свойств для назначения и изменения внешнего вида.
А теперь ,сделайте тоже самое на MVC wink.gif

Спустя 2 минуты, 53 секунды (16.02.2012 - 16:27) SlavaFr написал(а):
Цитата (bodja @ 16.02.2012 - 12:14)
(от MVC польше понту ,чем толку)

это зависет от того, что программируеш.

Спустя 5 минут, 57 секунд (16.02.2012 - 16:33) imbalance_hero написал(а):
m4a1fox
А вот так. Класс - это пакет функций и переменных. Ничего более.
ООП - это наследование, инкапсуляция, абстракция, распределение ролей.
Синглтон - маленькая необходимая вещь, чтобы перевести ООПшный класс mysql, в статичный, чтобы можно было пользоваться им адекватно в процедурном программировании.
Пока не будет целого огорода кто кого, а кто ниже, а кто выше, кто с кем дружит, а кто с кем в ссоре, то нет и ООП.
Классы - один из инструментов как для процедурного программирования, так и для ООПшного.

Спустя 21 секунда (16.02.2012 - 16:33) SlavaFr написал(а):
Цитата (bodja @ 16.02.2012 - 13:24)
.Мне не нужно лезть в шаблонизатор ,так как обьект как правило содержит в себе весь необходимый набор методов и свойств для назначения и изменения внешнего вида.

дело не только в том, чтоб отделить скрипт который занимается тонкостями изображения или другого оутпута в отдельный файл, но и в том, чтоб его мозно было в любой момент заменить другим не изменяя при этом контроллер или модель

Спустя 28 минут, 23 секунды (16.02.2012 - 17:02) bodja написал(а):
SlavaFr
Есть такое понятие как начальная инициализация переменных и констант.
Небольшой пример.

Цитата
const IMAGE1_URL = "head.jpg";
const IMAGE2_URL = "menu.jpg";
const IMAGE3_URL = "footer.jpg";
              var videoURL:String = "sample.flv";
var _page:BitmapData = new BitmapData(900, 1200, true, 0xffaFFFaF);
var _header:BitmapData = new BitmapData(900, 150, true, 0xffffeeee);
var _content:BitmapData = new BitmapData(900, 400, true, 0xffeeFFee);
var _footer:BitmapData = new BitmapData(900, 100, true, 0xffeeeeff);
var video:Video = new Video();
var page:Bitmap;
var header:Bitmap;
var content:Bitmap;
var footer:Bitmap;
var button1:Sprite;
//--------------
            var connection:NetConnection;
            var stream:NetStream;
//---------------
var bmd1:BitmapData;
var bm2:Bitmap;
var bmd2:BitmapData = new BitmapData(900, 1200, true, 0xffaFFFaF);
var rect:Rectangle = new Rectangle(10, 10, 150, 150);
var pt:Point = new Point(0, 0);

Это на тот случай если нужно быстро изменить внешне.Если менять внешне сильно,то все равно необходимо менять и функционал.Тут что не городи ,все равно не поможет.

Спустя 36 минут, 58 секунд (16.02.2012 - 17:39) SlavaFr написал(а):
Цитата (bodja @ 16.02.2012 - 14:02)
Если менять внешне сильно,то все равно необходимо менять и функционал

а если не сильно?
нам приходилось например толькко блогадорля замене View менять хтмл-оутпут на pdf , xml и jsons-string. при этом не приходилось изменять контролер или модель не на грам.

Спустя 9 часов, 53 секунды (17.02.2012 - 02:39) tp123 написал(а):
inpost, для меня сейчас php ушло в направлении написания парсеров, регеров, автоматизаторов когда надо большой объем инфы спарсить/залить/скачать/распоковать/запоковать/залить в mysql. Понимаю что это гиблый путь. тоесть лучше это вообще делать на perl...

Спустя 4 минуты, 9 секунд (17.02.2012 - 02:44) TranceIT написал(а):
tp123
Не тырить контент лучше всего wink.gif

Спустя 4 минуты, 45 секунд (17.02.2012 - 02:48) tp123 написал(а):
TranceIT, дык я не для себя для клиентов ))))


_____________
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.