DbHelp.ru
Маленький Yii блог
Комментарии
Гость: комент
Гость: wahaha
zolter: Друпал на Yii? ))
nastia: http://drupal.org/
JB: Да там просто ад)) мне всего 3 значения нужно чтобы выпадало, все равно спасибо)...



Сервер Ultima Online - Forest Wars (от создателя данного блога)

Обзор дополнения CFile

Рубрика: Мелкие заметки на тему Yii

Оцените эту статью:

Рейтинг: 0.00 (0)
26 Окт. 2009
Опубликовать в Twitter Написать в Facebook Опубликовать в своем блоге livejournal.com

Мы постоянно совершенствуем свои приложения позволяя пользователям загружать свои документы, аватарки и др. Хочешь упростить все эти функции? Читай обзор нового Yii дополнения!

---

Вчера пользователь idle опубликовал расширения для упрощения работы с файлами. Теперь вы можете легко изменять права на файл (chmod), проверять его существование, копировать и многое другое!

Доступные свойства:

  1. exists
  2. readable (доступно с версии 0.2)
  3. writeable  (доступно с версии 0.2)
  4. realpath
  5. basename
  6. filename
  7. dirname
  8. extension
  9. mimeType
  10. timeModified
  11. size
  12. owner (может быть установлено)
  13. group (может быть установлено)
  14. permissions (может быть установлено)

Доступные методы:

  1. Copy
  2. Create (доступно с версии 0.2)
  3. Contents (чтение & запись, доступно с версии 0.2)
  4. Rename/Move
  5. Delete

Установка

Подключение дополнения CFile ничем не отличается от подключения остальных.

  1. Первым делом заходим на страницу http://www.yiiframework.com/extension/cfile/ (во вкладку Download) и загружаем последнюю версию
  2. Распакуйте архив в папку protected/extensions/file вашего Yii приложения
  3. Откройте конфигурационный файл (по умолчанию config/main.php) и добавляем туда:
     'components'=>array(
        ...
        'file'=>array(
            'class'=>'application.extensions.file.CFile',
        ),
        ...
    ),

Теперь Вы можете получить доступ к методам CFile следующим образом:

 $myfile = Yii::app()->file->set('files/test.txt', true);
/*
  Мы используем метод set() для связки объекта CFile с файлом.
  Первый парраметр в set() - 'files/test.txt' - это путь к фалу (мы используем относительный путь, который автоматически преобразуется в реальный /var/www/htdocs/files/test.txt).
  Второй параметр в set() - значение true - требует получить все свойства файла в самом начале (вы можете не использовать этот параметр если вам не нужны все свойства)
  $myfile содержит объект CFile, давайте посмотрим что у нас там:
*/
var_dump($myfile); // дамп обьекта со всеми свойствами

echo $myfile->size; // можем получить свойство

$myfile->permissions=755; // или установить его

$mynewfile = $myfile->copy('files/test2.txt'); // или проводить манипуляции с файлом (к примеру, копировать его). теперь $mynewfile содержит новый обьект CFile

/* Вы можете использовать такой подход тоже */
if (Yii::app()->file->set('files/test3.txt')->exists)
echo 'Все окей!';
else
echo 'Ошибка((';

Более детальное описание всех методов и свойств автор рекомендует посмотреть в исходном коде самого класса.

Примеры использования кода были взяты из официальной документации дополнения.

 



Если хотите опубликовать этот материал у себя - пожалуйста, разместите ссылку на страницу откуда вы его взяли.
Другие yii статьи:

  1. Такое слово как интернационализация (i18n) я думаю, приходилось слышать каждому программисту при разработке серьезных сайтов. Все мы рано или ... "Интернационализация в Yii"

  2. Если честно я немного подглядел список изменений которые уже были сделаны и решил опубликовать их для вас. Скорее всего изменения ... "Что нас ждет в 1.0.6?"

  3. ... "Перевод : Доработка модели Post"

[adm] zolter

Было сказано: Понедельник, 26 Октябрь 2009

Сегодня появилась версия 0,2! Включает в себя еще более интересные функции для работы с файлами. Расширение теперь также доступно на страницах гугл кода - http://code.google.com/p/ist-yii-cfile/

[guest] idle sign

Было сказано: Понедельник, 26 Октябрь 2009

Тимур, только не "config/mail.php" а "config/main.php".

А переводна русский неплох, да :)

[guest] Romanoza

Было сказано: Понедельник, 26 Октябрь 2009

Yii::app()->file->set('files/test3.txt')->exists

жесть :))

[adm] zolter

Было сказано: Понедельник, 26 Октябрь 2009

to idle sign
сенк, поправил :)

[guest] idle sign

Было сказано: Понедельник, 26 Октябрь 2009

@zolter
И все-таки («since» это не «для»).

И, zolter, если можно, пусть тот синий квадрат вверху страницы справа не говорит людям «Привет, Guest», а говорит, например «Привет, человек» (за это ответит параметр 'guestName' массива 'user', массива 'components' конфигурации приложения).

@Romanoza
Смягчи жесть импортом и "CFile::set('files/1.htm')->exists".
Есть предложения как сделать еще короче, не вшивая в сам Yii? Внимательно слушаю.

[adm] zolter

Было сказано: Понедельник, 26 Октябрь 2009

Просто мне кажется выражение "доступно с версии 0.2" не очень красиво звучит. А "для" весьма понятно, учитывая что версий выше нету.

п.с. как заменить Guest на другое слово я в курсе ;)

[guest] idle sign

Было сказано: Понедельник, 26 Октябрь 2009

@zolter
Выше ― будут :)

[adm] zolter

Было сказано: Понедельник, 26 Октябрь 2009

Ладно, ладно :)

[guest] Igor

Было сказано: Вторник, 27 Октябрь 2009

echo $myfile->size; // можем получить свойство
$myfile->permissions=755; // или установить его

Для установки значений есть методы set***()
В данном примере:
$myfile->setPermissions(0755);

Оставить комментарий


Код:
Имя: