Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум (новые сообщения вниз) Структурный форум

тема: оцените класс загрузки файлов

Сообщения:  [1-10]    [11-20]   [21-30]   [31-40]  [41-49] 

 
 автор: cheops   (05.01.2011 в 00:17)   письмо автору
 
   для: Tonik992   (04.01.2011 в 20:05)
 

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

  Ответить  
 
 автор: ride   (05.01.2011 в 00:03)   письмо автору
 
   для: Tonik992   (04.01.2011 в 20:05)
 

>>Некоторые ...
тАк их наверное еще никто не называл:)
согласен про композицию, к тому же, если этот класс нагрузить функцией переименования - имхо нарушается принцип единственной ответственности
я бы создал массив фильтров в классе (по аналогии с валидаторами)

  Ответить  
 
 автор: Tonik992   (04.01.2011 в 20:05)   письмо автору
 
   для: admiral   (04.01.2011 в 20:03)
 

С $_FILES ошибся. Тогда можно сделать и вовсе без параметра.
cheops.. Некоторые кстате утверждают, что лучше вместо многократных наследований использовать композицию.. Хотя каждый сам для себя определяет соотношение использования одного и другого

  Ответить  
 
 автор: admiral   (04.01.2011 в 20:05)   письмо автору
 
   для: Tonik992   (04.01.2011 в 19:58)
 

-

  Ответить  
 
 автор: admiral   (04.01.2011 в 20:03)   письмо автору
 
   для: Tonik992   (04.01.2011 в 19:58)
 

>Реализовать тогда один интерфейсный статический метод с 1 параметром - $_FILES.
Смысле передавать $_FILES? Почему? Почитайте выше сообщения Trianon'а

  Ответить  
 
 автор: neadekvat   (04.01.2011 в 20:00)   письмо автору
 
   для: admiral   (04.01.2011 в 19:52)
 

В таком случаи я бы советовал ввести, например, дополнительные параметры, которые бы указывали - делать все автоматически (вы передаете только индекс массива $_FILES, а на выходе сразу получаете имена загруженных файлов), либо нет, когда вы вручную задаете имя и т.д.
Правда во втором слуаи встает вопрос - а нафига класс то нужен?

  Ответить  
 
 автор: cheops   (04.01.2011 в 19:58)   письмо автору
 
   для: admiral   (04.01.2011 в 19:52)
 

Создайте для генерации имен класс, и передайте объект этого класса в конструктор, если не хотите перегружать класс загрузки файлов дополнительной функциональностью. А еще лучше унаследуйте от класса загрузки файла/файлов, новый класс, где и реализуйте генерацию новых имен. Понадобится новый механизм генерации имен - унаследуйте еще один класс... Собственно ради подобных задач ООП-инструменты и создавались.

  Ответить  
 
 автор: Tonik992   (04.01.2011 в 19:58)   письмо автору
 
   для: cheops   (04.01.2011 в 19:40)
 

Если говорить про один public-метод, то мне кажется, что в таком случае лучше и вовсе не создавать объект.
Реализовать тогда один интерфейсный статический метод с 1 параметром - $_FILES.
конструктор сделать приватным.
Для данного класса это можно сделать и таким образом

  Ответить  
 
 автор: admiral   (04.01.2011 в 19:52)   письмо автору
 
   для: cheops   (04.01.2011 в 19:40)
 

>>>Зачем мне самому вызывать move_uploaded, если есть класс?
>>Вы полагаете что, класс должен сам вызвать процесс перемещения файла на сервер? Такое же
>>можно сделать только в момент создания объекта класса?
>А что в этом плохого? Пусть конструктор проверяет наличие файла в $_FILES - если есть, пусть перемещает файл, если нет - пусть ничего не делает.

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

  Ответить  
 
 автор: cheops   (04.01.2011 в 19:40)   письмо автору
 
   для: admiral   (04.01.2011 в 18:57)
 

>>Зачем мне самому вызывать move_uploaded, если есть класс?
>Вы полагаете что, класс должен сам вызвать процесс перемещения файла на сервер? Такое же
>можно сделать только в момент создания объекта класса?
А что в этом плохого? Пусть конструктор проверяет наличие файла в $_FILES - если есть, пусть перемещает файл, если нет - пусть ничего не делает. В конце концов вряд ли кто-то будет создавать объект класса, если ему не требуется загрузка файла в конечную директорию. Чем меньше манипуляций для конечного пользователя - тем удобнее и эфективнее спроектирован интерфейс класса.

  Ответить  

Сообщения:  [1-10]    [11-20]   [21-30]   [31-40]  [41-49] 

Форум разработан IT-студией SoftTime
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования