![]() |
|
Модераторы: skyboy, MoLeX, Aliance, ksnk |
![]()
|
|
| mr.Anderson |
|
|||
![]() iOS Lead Developer ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 3374 Регистрация: 20.12.2004 Где: далеко Репутация: нет Всего: 128 |
Оцените пожалуйста. Написал класс для работы с файлами. Мне кажется, я собрал в нем все необходимые функции. Посмотрите. Я сам его не тестировал (пока не представилось случая). Подскажите, где ошибки, неточности, что добавить нужно бы.
Ссылка на краткое описание класса (там же и ссылка на сам класс): http://homemaster.org.ru/forum/index.php?showtopic=19 |
|||
|
||||
| alergi |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 17 Регистрация: 14.8.2006 Где: МОСКВА Репутация: нет Всего: нет |
идея хорошая, но реализация... короче над ней надо еще поработать
P.S. это только первое впечатление, но повторюсь идея неплохая. Посмотри еще на другие подобные классы и возьми из них всё самое лучшее |
|||
|
||||
| mr.Anderson |
|
|||
![]() iOS Lead Developer ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 3374 Регистрация: 20.12.2004 Где: далеко Репутация: нет Всего: 128 |
Добавил функцию поиска строки в файле. Не проверял, но по логике должно работать.
К слову, у некоторых юзеров возникают вопросы, как его пользовать, этот класс. Создаем в одной папке с классом файл PHP и пишем туда:
И запустите его. |
|||
|
||||
| AztEK |
|
||||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 723 Регистрация: 4.1.2005 Репутация: 1 Всего: 18 |
Пробежался по коду. Мои замечания:
1) Зачем писать вот это:
Аналогично тому, чтобы вообще ничего не писать 2) Не работают некоторые ф-ции, в частности, вот эта:
Переменной $DTM_FORMAT в ней нету 3) В функции fReadContent() лучше использовать ф-цию file_get_contents(), а не file(). Логичней имхо. И быстрее. А для разбития файла на массви имхо лучше сделать отдельную ф-цию. 4) Странная ф-ция GetStatus(). 5) Ф-ция fReadLine( $lineNumber ). В ней нерационально использовать file(). Вдруг будет файл с 100000000 строк и надо выдать 9999999? Производительность никакая. Лучше ручками через fgets() и feof(). 6)
7) С этим соглашусь. -------------------- Linux is like wigwam -- no windows, no gates, apache inside. |
||||||
|
|||||||
| mr.Anderson |
|
||||||||||
![]() iOS Lead Developer ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 3374 Регистрация: 20.12.2004 Где: далеко Репутация: нет Всего: 128 |
А чтобы понятно было, какие переменные используются.
Ой, точняк. Там же надо было $this->DTM_FORMAT написать... эх... никак к синтаксису классовых переменных не привыкну.
Не знаком с этой функцией, если честно, потому и не юзал... Да file() как-то привычнее.
Да она мне и самому не нравилась... Я лучше уберу ее, я и сам не больно понимаю, как она работает.
Ок. |
||||||||||
|
|||||||||||
| Vaulter |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1724 Регистрация: 30.12.2002 Где: бункер Репутация: нет Всего: 22 |
хм... мне вот достаточно вот такого класса:
все остальное пишется на ура обычными фун-ями PHP... че велосипед то изобретать??? |
|||
|
||||
| mr.Anderson |
|
|||
![]() iOS Lead Developer ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 3374 Регистрация: 20.12.2004 Где: далеко Репутация: нет Всего: 128 |
Vaulter, ну, если достаточно, то и хорошо. В этом классе я сделал оболочку для многих часто используемых стандартных функций. В частности, чтобы вам выбрать определенную строку из файла, что придется сделать? Правильно, писать строчек пять-шесть минимум. А с моим классом все в одну строчку обходится. И так далее.
Так. Класс обновил. Добавил и исправил несколько функций, модифицировал функции с учетом вышесказанных замечаний, в частности, заменил file() на fgets(). Все полностью работоспособно, вроде бы. Скачивать по той же ссылке, в последнем сообщении. Еще раз прошу потестить. |
|||
|
||||
| Mal Hack |
|
|||
![]() Мудрый... ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 9926 Регистрация: 15.2.2004 Репутация: 1 Всего: 261 |
sim7, будь другом, положи его сюда кодом...
|
|||
|
||||
| mr.Anderson |
|
|||
![]() iOS Lead Developer ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 3374 Регистрация: 20.12.2004 Где: далеко Репутация: нет Всего: 128 |
Прям весь код выложить? А мож, лучше файл? Там-таки 555 строк кода...
Ну, если нужно, хорошо:
|
|||
|
||||
| Mal Hack |
|
|||
![]() Мудрый... ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 9926 Регистрация: 15.2.2004 Репутация: 1 Всего: 261 |
Все слишком, так сказать, нагружено.
Есть, когнечно ряд моментов, которые не влияют на работу, но с точки зрения проектирования они не являются корректными. Позволю себе показать свой код недописанного файлового менеджера. Недописан в части небольших фич. Я думаю, ознакомившись с кодом ты сделаешь несколько исправлений в своем. Это не просто класс, а модуль, это важное дополноение. Я удалил методы, отвечающие за работу самого модуля (основные). И обрати внимание на обработку ошибок. Хотя сейчас я бы сделал через try/catch/throw.
|
|||
|
||||
| Vaulter |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1724 Регистрация: 30.12.2002 Где: бункер Репутация: нет Всего: 22 |
sim7, хех... для этой лабуды юзаю такую функцию:
|
|||
|
||||
| Alone |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 663 Регистрация: 11.5.2003 Где: Dnepropetrovsk, U A Репутация: нет Всего: 6 |
Mal Hack,
Vaulter, Сразу видно, кто занимается разработкой, а кто "скриптовик-затейник" PS: И ничего личного... -------------------- |
|||
|
||||
| Mal Hack |
|
|||
![]() Мудрый... ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 9926 Регистрация: 15.2.2004 Репутация: 1 Всего: 261 |
||||
|
||||
| mr.Anderson |
|
|||
![]() iOS Lead Developer ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 3374 Регистрация: 20.12.2004 Где: далеко Репутация: нет Всего: 128 |
Alone, может, лучше было сказать так: "Сразу видно, кто уже профессионал, а кто еще только учится!"
|
|||
|
||||
| jzZ |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 91 Регистрация: 17.7.2006 Репутация: нет Всего: 2 |
sim7
лично мое мнение, класс неуневерсален, и вообще подгружать 18кило неохота когда можно обойтись 2мя 3мя для конкретной задачи, тем более что класс в духе php4. |
|||
|
||||
![]()
|
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | PHP: Extensions | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |