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

Скрипты P2P (peer to peer) open-source чатов


PeerJS - скрипт основан на WebRTC, и работает на PeerServer который работает на node.js
Коннект
var conn = peer.connect('another-peers-id');
conn.on('open', function(){
  conn.send('hi!');
});
Получить
peer.on('connection', function(conn) {
  conn.on('data', function(data){
    // Will print 'hi!'
    console.log(data);
  });
});
https://github.com/peers/peerjs

otr.to - скрипт зашифрованного чата с само уничтожающимися сообщениями
Скрипты P2P (peer to peer) open-source чатов
https://github.com/OTRMan/otr.to-chat

jquery-chat - скрипт чата построенного на jQuery + Node.js + Socket.IO
Скрипты P2P (peer to peer) open-source чатов
https://github.com/lovelle/jquery-chat

converse.js - мощный скрипт чата основанного на XMPP протоколе
Скрипты P2P (peer to peer) open-source чатов

https://github.com/jcbrand/converse.js

rocket.chat - мощный скрипт чата на Meteor(js платформа)
Скрипты P2P (peer to peer) open-source чатов

https://github.com/RocketChat/Rocket.Chat

lets-chat - мощный скрипт чата работающего на Node.js и MongoDB и поддерживает XMPP
Скрипты P2P (peer to peer) open-source чатов

https://github.com/sdelements/lets-chat

Видео: Продвижение интернет-магазина самостоятельно


Awesome Laravel - список полезных ресурсов по laravel


Awesome Laravel - список полезных ресурсов по laravel

https://github.com/TimothyDJones/awesome-laravel

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);
«»
Вверх