Commit 27a75f9cfdc059f5ec678c482e82ead4d7360c67
1 parent
53582aeb
edid documentation
Showing
1 changed file
with
16 additions
and
16 deletions
Show diff stats
README.md
| ... | ... | @@ -36,15 +36,15 @@ $data = Yii::$app->multiparser->parse( file_path ); |
| 36 | 36 | В состав пакета входит развернутый пример парсинга всех типов файлов с разными настройками. Пример написан для использования в YII-advance. Для basic приложения необходимо будет отдельно настроить пространство имен. |
| 37 | 37 | Для ознакомления с примером необходимо произвести установку пакета как описано в п.2. В качестве конфигурационного файла необходимо указать файл – examples\config.php. |
| 38 | 38 | В состав примера входят: |
| 39 | - 3.1. Контроллер - examples\ParserController.php – его необходимо скопировать в папку с контроллерами бекенда. | |
| 40 | - 3.2. Файлы вью - examples\Views – содержимое необходимо скопировать в папку views бекенда. | |
| 41 | - 3.3. Пользовательская форма выбора файла - examples\UploadFileParsingForm.php – скопировать в модели бекенда. | |
| 42 | - 3.4. Файлы с данными для парсинга - examples\_data – содержимое необходимо скопировать в test\_data проекта. | |
| 39 | + <p>3.1. Контроллер - examples\ParserController.php – его необходимо скопировать в папку с контроллерами бекенда.</p> | |
| 40 | + <p>3.2. Файлы вью - examples\Views – содержимое необходимо скопировать в папку views бекенда. </p> | |
| 41 | + <p>3.3. Пользовательская форма выбора файла - examples\UploadFileParsingForm.php – скопировать в модели бекенда.</p> | |
| 42 | + <p>3.4. Файлы с данными для парсинга - examples\_data – содержимое необходимо скопировать в test\_data проекта.</p> | |
| 43 | 43 | |
| 44 | 44 | ###4. Описание конфигурационного файла.### |
| 45 | 45 | Конфигурационный файл представляет собой описание многомерного массива настроек (пример - examples\config.php). |
| 46 | - 4.1. Элементами первого уровня массива указываются расширения файлов, с которыми компонент будет работать. Для каждого расширения определяется массив настроек парсинга данного типа файлов. Пакет поддерживает определение нескольких сценариев (несколько параллельных настроек) для одного типа файлов.</p> | |
| 47 | - 4.2. Сценарии указываются на втором уровне. Так в примере к пакету используются два сценария – template – для файлов приложенных к пакету, и custom – для файлов выбранных пользователем. | |
| 46 | + <p>4.1. Элементами первого уровня массива указываются расширения файлов, с которыми компонент будет работать. Для каждого расширения определяется массив настроек парсинга данного типа файлов. Пакет поддерживает определение нескольких сценариев (несколько параллельных настроек) для одного типа файлов.</p> | |
| 47 | + <p>4.2. Сценарии указываются на втором уровне. Так в примере к пакету используются два сценария – template – для файлов приложенных к пакету, и custom – для файлов выбранных пользователем.</p> | |
| 48 | 48 | Также на этом уровне можно определить параметры, которые будут доступны для данного расширения. В примере используется эта возможность для определения колонок выбора соответствия отпарсенных колонок с эталонными колонками (параметр - basic_column). Вызов этого параметра можно осуществить следующим образом: |
| 49 | 49 | ```php |
| 50 | 50 | Yii::$app->multiparser->getConfiguration($file_extension, 'basic_column'); |
| ... | ... | @@ -52,8 +52,8 @@ Yii::$app->multiparser->getConfiguration($file_extension, 'basic_column'); |
| 52 | 52 | <p>4.3. На третьем указываются настройки парсера в виде конфигурационного массива YII.</p> |
| 53 | 53 | Данный массив имеет один обязательный элемент с ключем – class, в котором указывается имя парсера, который будет обрабатывать данный тип файлов. Таким образом можно указать свой класс парсера, или использовать классы входящие в пакет, например для csv это класс - `yii\multiparser\CsvParser`. |
| 54 | 54 | При использовании встроенного класса (или наследуемые от него) в данном массиве можно установить следующие атрибуты в качестве настроек: |
| 55 | - <p>  4.3.1. converter_conf – array. Настройки конвертера. Детально описано в п.5.</p> | |
| 56 | - <p>  4.3.2. keys – array. В этом параметре можно назначить имена колонкам файла. Например:</p> | |
| 55 | + <p>4.3.1. converter_conf – array. Настройки конвертера. Детально описано в п.5.</p> | |
| 56 | + <p>4.3.2. keys – array. В этом параметре можно назначить имена колонкам файла. Например:</p> | |
| 57 | 57 | ```php |
| 58 | 58 | 'keys' => [ |
| 59 | 59 | 0 => 'Description', |
| ... | ... | @@ -64,10 +64,10 @@ Yii::$app->multiparser->getConfiguration($file_extension, 'basic_column'); |
| 64 | 64 | ] |
| 65 | 65 | ``` |
| 66 | 66 | При такой настройке результирующий массив будет ассоциативным, где в колонке массива с ключем `'Brand'` – будут значения из четвертой колонки файла. |
| 67 | - <p>  4.3.3. `has_header_row – bolean`. Признак, имеет ли файл заголовок в первой значимой строке, если true - первая значимая строка будет пропущена и не попадет в результирующий массив. По умолчанию – true.</p> | |
| 68 | - <p>  4.3.4. `first_line – integer`. Номер строки с которой начинается парсинг. Если установлен аттрибут has_header_row, тогда следующая строка за данной, будет считаться заголовком и будет пропущена. По умолчанию – 0.</p> | |
| 69 | - <p>  4.3.5. `last_line – integer`. Номер строки по которую будет произведен парсинг. Если = 0, парсинг будет производится до конца файла. По умолчанию – 0.</p> | |
| 70 | - <p>  4.3.6. `min_column_quantity - integer`. Количество заполненных колонок строки начала файла. Если строка имеет не меньше заполненных колонок чем указано в параметре, данная строка считается значимой и с неё начинается парсинг файла. Используется при старте парсинга для определения начала файла. Имеет смысл только при first_line =0. По умолчанию – 5. То есть парсинг начнется с первой строки файла, которая имеет не меньше 5 колонок с данными.</p> | |
| 67 | + <p>4.3.3. `has_header_row – bolean`. Признак, имеет ли файл заголовок в первой значимой строке, если true - первая значимая строка будет пропущена и не попадет в результирующий массив. По умолчанию – true.</p> | |
| 68 | + <p>4.3.4. `first_line – integer`. Номер строки с которой начинается парсинг. Если установлен аттрибут has_header_row, тогда следующая строка за данной, будет считаться заголовком и будет пропущена. По умолчанию – 0.</p> | |
| 69 | + <p>4.3.5. `last_line – integer`. Номер строки по которую будет произведен парсинг. Если = 0, парсинг будет производится до конца файла. По умолчанию – 0.</p> | |
| 70 | + <p>4.3.6. `min_column_quantity - integer`. Количество заполненных колонок строки начала файла. Если строка имеет не меньше заполненных колонок чем указано в параметре, данная строка считается значимой и с неё начинается парсинг файла. Используется при старте парсинга для определения начала файла. Имеет смысл только при first_line =0. По умолчанию – 5. То есть парсинг начнется с первой строки файла, которая имеет не меньше 5 колонок с данными.</p> | |
| 71 | 71 | <p>4.3.7. `empty_lines_quantity - integer`. Количество пустых строк, что бы определить конец файла. Имеет смысл только при first_line =0. По умолчанию – 3. То есть парсинг закончится на строке, после которой встретятся три пустых строки.</p> |
| 72 | 72 | |
| 73 | 73 | ###5. Конвертер.### |
| ... | ... | @@ -75,10 +75,10 @@ Yii::$app->multiparser->getConfiguration($file_extension, 'basic_column'); |
| 75 | 75 | Конвертер представляет собой отдельный класс с статическими методами конвертации значений. Что бы подключить конвертер к парсеру, необходимо заполнить свойство конфигурационного файла converter_conf. |
| 76 | 76 | Данное свойство является конфигурационным массивом с двумя обязательными элементами. Элемент с ключем class, в котором необходимо указать класс используемого конвертера. И Элемент с ключем configuration – массив ключи которого описывают методы преобразования, а значения – имена колонок файла для преобразования. |
| 77 | 77 | Конвертер входящий в пакет содержит следующие методы преобразования: |
| 78 | - 5.1. Encode – метод меняет кодировку с 'windows-1251' в 'UTF-8'. | |
| 79 | - 5.2. String – метод очищает строку от специальных символов. А именно, удаляются - `!, @, #, $, %, ^, &, *, (, ), _, +, =, -, ~, ```, ", ', №, %, ;, :, [, ], {, }, *, ?, /, \ , |, ., ',' , <, >, \.` | |
| 80 | - 5.3. Integer – метод преобразует строку в Integer. | |
| 81 | - 5.4. Float – метод преобразует строку в float. | |
| 78 | + <p>5.1. Encode – метод меняет кодировку с 'windows-1251' в 'UTF-8'.</p> | |
| 79 | + <p>5.2. String – метод очищает строку от специальных символов. А именно, удаляются - `!, @, #, $, %, ^, &, *, (, ), _, +, =, -, ~, ```, ", ', №, %, ;, :, [, ], {, }, *, ?, /, \ , |, ., ',' , <, >, \.`</p> | |
| 80 | + <p>5.3. Integer – метод преобразует строку в Integer.</p> | |
| 81 | + <p>5.4. Float – метод преобразует строку в float.</p> | |
| 82 | 82 | Конкретные значения для конвертации есть смысл указывать только если в настройках парсера указаны ключи соответствия (свойство key см. 4.3.2). Иначе необходимо указать в качестве значения – пустой массив, что будет означать применение данного метода для всех колонок файла. |
| 83 | 83 | Допустимо указывать колонки для конвертации тремя способами: |
| 84 | 84 | ```php | ... | ... |