12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394 |
- <?php
- /**
- * Copyright © Magento, Inc. All rights reserved.
- * See COPYING.txt for license details.
- */
- namespace Magento\Framework\Backup\Filesystem\Iterator;
- /**
- * File lines iterator
- *
- * @author Magento Core Team <core@magentocommerce.com>
- */
- class File extends \SplFileObject
- {
- /**
- * The statement that was last read during iteration
- *
- * @var string
- */
- protected $_currentStatement = '';
- /**
- * Return current sql statement
- *
- * @return string
- */
- public function current()
- {
- return $this->_currentStatement;
- }
- /**
- * Iterate to next sql statement in file
- *
- * @return void
- */
- public function next()
- {
- $this->_currentStatement = '';
- while (!$this->eof()) {
- $line = $this->fgets();
- if (strlen(trim($line))) {
- $this->_currentStatement .= $line;
- if ($this->_isLineLastInCommand($line)) {
- break;
- }
- }
- }
- }
- /**
- * Return to first statement
- *
- * @return void
- */
- public function rewind()
- {
- parent::rewind();
- $this->next();
- }
- /**
- * Check whether provided string is comment
- *
- * @param string $line
- * @return bool
- */
- protected function _isComment($line)
- {
- return $line[0] == '#' || substr($line, 0, 2) == '--';
- }
- /**
- * Check is line a last in sql command
- *
- * @param string $line
- * @return bool
- */
- protected function _isLineLastInCommand($line)
- {
- $cleanLine = trim($line);
- $lineLength = strlen($cleanLine);
- $returnResult = false;
- if ($lineLength > 0) {
- $lastSymbolIndex = $lineLength - 1;
- if ($cleanLine[$lastSymbolIndex] == ';') {
- $returnResult = true;
- }
- }
- return $returnResult;
- }
- }
|