<div id="player"></div>
<script src="http://www.youtube.com/player_api"></script>
function onYouTubePlayerAPIReady() {
player = new YT.Player("player", {
height: "450",
width: "800",
playerVars: {
'start': 00,
'end': 00,
'theme': 'light',
'rel': 0
},
videoId: "FH3hIggyJ-U",
events: {
onStateChange: onPlayerStateChange
}
})
}
function onPlayerStateChange(a) {
if (a.data === 0) {
videoEnded();
}
};
function videoEnded() {
// здесь пишем код функции по окончанию просмотра видео
}
function videoEnded() {
if ($(window).width() < 728) {
$(".videoWindowContent").css("marginTop", $("#player").height() / 2 - $(".videoWindowContent").height() / 2);
}
$(".videoWindowContent").stop().fadeIn(300)
}
$headers="To: $to\nFrom: $from\nSubject: $subject\n$headers";
$fp = fsockopen($server, 25, &$errno, &$errstr, 30);
if (!$fp)
die("Server $server. Connection failed: $errno, $errstr");
fputs($fp,"HELO $server\n");
fputs($fp,"MAIL FROM: $from\n");
fputs($fp,"RCPT TO: $to\n");
fputs($fp,"DATA\n");
fputs($fp,$headers."\n");
fputs($fp,$this->mime);
fputs($fp,"\n.\nQUIT\n");
while(!feof($fp))
$resp.=fgets($fp,1024);
fclose($fp);
<?php
interface TasksManagerInterface
{
public function find(TaskInterface $task);
public function create(TaskInterface $task);
public function update(TaskInterface $task);
public function delete(TaskInterface $task);
}
interface TaskInterface
{
public function find(TaskInterface $task);
public function create(TaskInterface $task);
public function update(TaskInterface $task);
public function delete(TaskInterface $task);
}
abstract class AbstractTask implements TaskInterface
{
protected function _commonTask() {
// какой то общий метод для всех потомков AbstractTask
}
abstract public function find(TaskInterface $task);
abstract public function create(TaskInterface $task);
abstract public function update(TaskInterface $task);
abstract public function delete(TaskInterface $task);
}
abstract class AbstractTasksManager implements TasksManagerInterface
{
protected function _commonTasksManager() {
// какой то общий код для всех потомков AbstractTasksManager
}
abstract public function find(TaskInterface $task);
abstract public function create(TaskInterface $task);
abstract public function update(TaskInterface $task);
abstract public function delete(TaskInterface $task);
}
class Task extends AbstractTask implements TaskInterface
{
public function find(TaskInterface $task)
{
/** Внедрить метод find в TasksManager правильно?
* Или он должен быть в отдельном классе?
* Метод find использует скоупы Yii2
*/
// можно вызывать
$this->_commonTask();
}
public function create(TaskInterface $task)
{
/** Содержимое метода */
}
public function update(TaskInterface $task)
{
/** Содержимое метода */
}
public function delete(TaskInterface $task)
{
/** Содержимое метода */
}
}
class TasksManager extends AbstractTasksManager implements TasksManagerInterface
{
public function find(TaskInterface $task)
{
/** Внедрить метод find в TasksManager правильно?
* Или он должен быть в отдельном классе?
* Метод find использует скоупы Yii2
*/
// можно вызывать
$this->_commonTasksManager();
}
public function create(TaskInterface $task)
{
/** Содержимое метода */
}
public function update(TaskInterface $task)
{
/** Содержимое метода */
}
public function delete(TaskInterface $task)
{
/** Содержимое метода */
}
}
$task = new Task();
$taskManager = new TasksManager();
Как далеким от программирования основателям найти ведущего разработчика в стартап?