Я реализую функцию под названием attach. Я ищу способ получить параметр, который является либо путем к файлу, либо содержимым файла. Вот что у меня есть:
/**
* @param name - name of the file
* @param file - either a file or a file path
*/
function attach($name, $file) {
$attachment = array();
$attachment['name'] = $name;
if(map($file)) {
$attachment['filepath'] = $file;
$attachment['file'] = file_get_contents($file);
} else {
$attachment['file'] = $file;
$attachment['filepath'] = getcwd();
}
}
/**
* @param filepath - can take multiple forms
* ie. ui:form:text.css => ui/form/text.css
* text.css => getcwd().'text.css'
* /ui/form/text.css => /ui/form/text.css
*
* @return if file exists - return file path
* if not found - return false
*/
function map($filepath) {
// ... too long to post
}
Функция map позволяет вам превращать пространства имен (используя «:») в filepaths.
Проблема, о которой я беспокоюсь, заключается в том, что в пути к файлу была допущена ошибка (т. Е. Кто-то неправильно указал путь к файлу). это должно быть содержимое файла
Также: если возможно, я бы не стал редактировать map()
, так как это потребовало бы от меня изменения набора кода - рассматривайте карту как черный ящик.
Наконец: я быстро собрал этот пример - поэтому, пожалуйста, не обсуждайте недостатки getcwd()
и другие синтаксические проблемы. У меня есть более сложная система в map()
Спасибо!
Мэтт Мюллер