Разделы
Теги | RSS © 2008 – 2017
Контакты
email: igor@veselov.sumy.ua
skype: utz0r2
» » » Страница 4

wapmorgan/MediaFile - php ридерд метаданных с аудио и видео файлов


try {
  $media = wapmorgan\MediaFile\MediaFile::open('123.mp3');
  // for audio
  if ($media->isAudio()) {
    // calls to AudioAdapter interface
    echo 'Duration: '.$media->getAudio()->getLength().PHP_EOL;
    echo 'Bit rate: '.$media->getAudio()->getBitRate().PHP_EOL;
    echo 'Sample rate: '.$media->getAudio()->getSampleRate().PHP_EOL;
    echo 'Channels: '.$media->getAudio()->getChannels().PHP_EOL;
  }
  // for video
  else {
    // calls to VideoAdapter interface
    echo 'Duration: '.$media->getVideo()->getLength().PHP_EOL;
    echo 'Dimensions: '.$media->getVideo()->getWidth().'x'.$media->getVideo()->getHeight().PHP_EOL;
    echo 'Framerate: '.$media->getVideo()->getFramerate().PHP_EOL;
  }
} catch (wapmorgan\MediaFile\Exception $e) {
  // not a media or file is corrupted
  if ($e instanceof wapmorgan\MediaFile\FileAccessException)
      echo 'File '.$file.' is not a media file'.PHP_EOL;
  else {
      echo 'File is propably corrupted: '.$e->getMessage().PHP_EOL;
  }
}

https://github.com/wapmorgan/MediaFile

15 Коротко ООП PHP - Завершающая. Пример на фреймверке Laravel - lashop


Специализируясь на разработке проектов под е-коммерс, хочу показать пример скрипта на популярном фреймворке laravel 5.4
15 Коротко ООП PHP - Завершающая. Пример на фреймверке Laravel - lashop

Делал как можно проще, только самое необходимое. Бд sqlite. Есть над чем поработать еще в данной реализации.
Ссылка на репозиторий: https://github.com/utz0r2/lashop
Быстрый платный движек vvShop http://veselov.sumy.ua/vvshop
Каталог open source скриптов магазинов https://www.ecommwar.com/

14. Коротко ООП PHP - Что осталось


Тестирование - тесты дают уверенность, что ваша программа работает как задумано. Такие тесты можно запускать многократно. Успешное выполнение тестов покажет разработчику, что его изменения не сломали ничего, что ломать не планировалось
Тесты делят на:

приёмочные — проверяют конечный результат, как правило в браузере. Это тесты, которые могут быть выполнены не техническим специалистом. Это может быть ваш тестировщик, менеджер или даже клиент/заказчик
Инструменты аналогичны функциональным

функциональные — проверяют почти то же самое, но на более низком уровне. Зачастую используют эмуляторы браузеров.
Инструменты
Selenium
Mink
Codeception

интеграционные — отдельные модули, комбинируются и тестируются, как группа
Инструменты аналогичны модульным

модульные (юнит) — позволяет удостовериться, что функции, классы и методы работают, как ожидается с момента начала и до конца разработки
Инструменты
SimpleTest
Enhance PHP
PUnit
atoum

Тестирование происходит снизу вверх от модульных и заканчиваются приемочными.

Рефакторинг — это контролируемый процесс улучшения кода, без написания новой функциональности. Результатом рефакторинга является чистый код и простой дизайн
https://refactoring.guru/ru/refactoring

13. Коротко ООП PHP - Пишем фреймверк MVC
















12. Коротко ООП PHP - Примеры


Шаблон фасад
12. Коротко ООП PHP - Примеры
Паттерн фасад определяет интерфейс более высокого уровня, который упрощает использование подсистем.
<?php
class Stringify {

 	public function __construct($str)
 	{
 		$this->str = $str;
 		$this->_AddText();
 		$this->_AddDigits();
 		$this->_AddObject(new Stuff);
 		echo $this->str;
 	}

 	private function _AddText()
 	{
		$this->str .= ' | Adding Text';
 	}

 	private function _AddDigits()
 	{
		$this->str .= ' | Adding Ditgits: 402 ';
 	}

 	private function _AddObject(Stuff $stuff)
 	{
		$this->str .= $stuff->WriteCrap();
 	}

}

class Stuff
{
	public function WriteCrap()
	{
		return __CLASS__ . ' Writing Stuff';
	}
}

new Stringify('Intro Text');

Шаблон декоратор
12. Коротко ООП PHP - Примеры

Сущность работы паттерна декоратор заключается в "оборачивании" готового объекта новым функционалом, при этом весь оригинальный интерфейс объекта остается доступным (декоратор переадресует все запросы объекту).
<?php

class Player
{

	public $Data = array();

	public function __construct(array $info)
	{
		$this->Data = $info;
	}

}

abstract class Player_Decorater
{
	abstract public function Add($int);
}

class Player_Str_Decorate extends Player_Decorater
{
	public function __construct(Player $p)
	{
		$this->Player = $p;
		$this->Player->Data['str'] += 5;
	}
	public function Add($int)
	{
		$this->Player->Data['str'] += $int;
	}
}

class Player_Dex_Decorate extends Player_Decorater
{
	public function __construct(Player $p)
	{
		$this->Player = $p;
		$this->Player->Data['dex'] += 25;
	}
	public function Add($int)
	{
		$this->Player->Data['dex'] += $int;
	}
}

$P = new Player(array('str' => 10, 'dex' => 20));
echo $P->Data['str'];
echo $P->Data['dex'];

echo '<hr/>';

$Str = new Player_Str_Decorate($P);
echo $Str->Player->Data['str'];

$Dex = new Player_Dex_Decorate($P);
$Dex->Add(55);
echo $Dex->Player->Data['dex'];

Цепочка методов
class Cupcake
{

	public $Cupcake = array();

	public function Frosting($str)
	{
		$this->Cupcake['Frosting'] = $str;
		return $this;
	}

	public function Nuts($int)
	{
		$this->Cupcake['Nuts'] = (int)$int;
		return $this;
	}

	public function Sprinkles($int)
	{
		$this->Cupcake['Sprinkles'] = (int)$int;
		return $this;
	}

}

$cupcake = new Cupcake();

$cupcake->Nuts('10')->Frosting('chocolate')->Sprinkles('200');

print_r($cupcake->Cupcake);

11. Коротко ООП PHP - Инструменты


IDE: PhpStorm, Visual Studio Code, Notepad++, Eclipse, Atom, Sublime Text и много других

Composer - менеджер зависимостей для PHP
- Список композер пакетов по популярности: https://packagist.org/explore/popular

PHP Code Similarity Analyzer - инструмент анализа сходства php кода
PHP Code Sniffer - инструмент обнаруживает нарушения определенного набора стандартов кодирования
PHP CS Fixer - инструмент автоматически исправит код под стандарт
PHP Parallel Lint - проверка синтаксиса
PHP Mess Detector - (обнаружитель беспорядков), пытается выявить ошибки, которые не находит компилятор, не оптимальные алгоритмы, переусложнённый код, не используемые выражения и другие подобные проблемы.
PHPLOC - инструмент для быстрого измерения размера и анализируя структуру PHP проекта
PHPDCD - инструмент для определения мертвого кода ( declared функции и методы )
PHPCPD - инструмент для определения дубликатов кода
PHPUnit - фреймворк для юнит тестирования
CodeCeption - фреймвор для тестирования на базе BDD
Security Advisories Checker - инструмент для проверки ваших библиотек на уязвимости
Gulp - сборщик пакетов можно использовать и для php нужд https://www.npmjs.com/search?q=php
phpqa https://github.com/jmolivas/phpqa - библиотека собирающая в кучу большинство из этих инструментов.
XDebug - отладчик позволяет вам отследить исполнение вашего кода и контролировать содержимое вашего стека.

Запуск окружения: virtualbox, vagrant, контейнеры docker, openserver, denver, xampp.

Конечно инструментов намного больше их просто тьма, но тот кто захочет начать этого предостаточно.
«»
Вверх