This commit is contained in:
2020-08-31 12:38:32 +08:00
parent 683a39dded
commit 65c443ec87
126 changed files with 7369 additions and 228 deletions
+1 -1
View File
@@ -7,7 +7,7 @@ namespace Snowflake\Abstracts;
/**
* Class BaseAnnotation
* @package BeReborn\Annotation\Base
* @package Snowflake\Snowflake\Annotation\Base
*/
abstract class BaseAnnotation extends Component
{
+13 -1
View File
@@ -29,7 +29,7 @@ use Snowflake\Event;
/**
* Class BaseApplication
* @package BeReborn\Base
* @package Snowflake\Snowflake\Base
* @property $json
* @property Annotation $annotation
* @property Event $event
@@ -38,6 +38,7 @@ use Snowflake\Event;
* @property \Snowflake\Pool\Pool $pool
* @property Server $servers
* @property Connection $connections
* @property Logger $logger
*/
abstract class BaseApplication extends Service
{
@@ -192,6 +193,17 @@ abstract class BaseApplication extends Service
return current($this->getLocalIps());
}
/**
* @return Logger
* @throws ComponentException
*/
public function getLogger(): Logger
{
return $this->get('logger');
}
/**
* @param $ip
* @return bool
+1 -1
View File
@@ -15,7 +15,7 @@ use Snowflake\Snowflake;
/**
* Class BaseObject
* @method defer()
* @package BeReborn\Base
* @package Snowflake\Snowflake\Base
* @method afterInit
* @method initialization
*/
+11 -7
View File
@@ -10,10 +10,11 @@ namespace Snowflake\Abstracts;
use Exception;
use Snowflake\Snowflake;
/**
* Class Component
* @package BeReborn\Base
* @package Snowflake\Snowflake\Base
*/
class Component extends BaseObject
{
@@ -73,6 +74,7 @@ class Component extends BaseObject
*/
public function trigger($name, $event = null, $params = [], $isRemove = false)
{
$aEvents = Snowflake::get()->event;
if (isset($this->_events[$name])) {
$events = $this->_events[$name];
foreach ($events as $key => $_event) {
@@ -82,11 +84,11 @@ class Component extends BaseObject
call_user_func($_event, ...$params);
if ($isRemove) {
unset($this->_events[$name][$key]);
of($name, $_event);
$aEvents->of($name, $_event);
}
}
}
fire($name, $event);
$aEvents->trigger($name, $event);
}
/**
@@ -96,14 +98,15 @@ class Component extends BaseObject
*/
public function off($name, $handler = NULL)
{
$aEvents = Snowflake::get()->event;
if (!isset($this->_events[$name])) {
return of($name, $handler);
return $aEvents->of($name, $handler);
}
if (empty($handler)) {
unset($this->_events[$name]);
return of($name, $handler);
return $aEvents->of($name, $handler);
}
foreach ($this->_events[$name] as $key => $val) {
@@ -114,7 +117,7 @@ class Component extends BaseObject
break;
}
return of($name, $handler);
return $aEvents->of($name, $handler);
}
/**
@@ -122,7 +125,8 @@ class Component extends BaseObject
public function offAll()
{
$this->_events = [];
ofAll();
$aEvents = Snowflake::get()->event;
$aEvents->clean();
}
+1 -1
View File
@@ -15,7 +15,7 @@ use Snowflake\Abstracts\Component;
/**
* Class Config
* @package BeReborn\Base
* @package Snowflake\Snowflake\Base
*/
class Config extends Component
{
+1 -1
View File
@@ -10,7 +10,7 @@ namespace Snowflake\Abstracts;
/**
* Interface Configure
* @package BeReborn\Base
* @package Snowflake\Snowflake\Base
*/
interface Configure
{
+2 -1
View File
@@ -10,7 +10,7 @@ use Swoole\Coroutine\Channel;
/**
* Class Pool
* @package BeReborn\Pool
* @package Snowflake\Snowflake\Pool
*/
abstract class Pool extends Component
{
@@ -41,6 +41,7 @@ abstract class Pool extends Component
* @param $name
* @param int $timeout
* @return mixed
* @throws Exception
*/
protected function get($name, $timeout = -1)
{
+1 -1
View File
@@ -12,7 +12,7 @@ use Snowflake\Snowflake;
/**
* Class Annotation
* @package BeReborn\Annotation
* @package Snowflake\Snowflake\Annotation
* @property Websocket $websocket
*/
class Annotation extends BaseAnnotation
+2 -3
View File
@@ -10,14 +10,13 @@ namespace Snowflake;
use Exception;
use HttpServer\Abstracts\HttpService;
use HttpServer\Server;
use Snowflake\Abstracts\BaseApplication;
/**
* Class Init
*
* @package BeReborn\Web
* @package Snowflake
*
* @property-read Config $config
*/
@@ -66,6 +65,6 @@ class Application extends BaseApplication
*/
public function make($className, $abstracts = null)
{
return Snowflake::createObject($className);
return make($className, $abstracts);
}
}
+1 -1
View File
@@ -15,7 +15,7 @@ use Swoole\Coroutine\System;
/**
* Class File
* @package BeReborn\Cache
* @package Snowflake\Snowflake\Cache
*/
class File extends Component implements ICache
{
+1 -1
View File
@@ -10,7 +10,7 @@ namespace Snowflake\Cache;
/**
* Interface ICache
* @package BeReborn\Cache
* @package Snowflake\Snowflake\Cache
*/
interface ICache
{
+1 -1
View File
@@ -17,7 +17,7 @@ use Swoole\Coroutine;
/**
* Class Redis
* @package BeReborn\Cache
* @package Snowflake\Snowflake\Cache
* @see \Redis
* @method append($key, $value): int
* @method auth($password):
+4 -3
View File
@@ -5,11 +5,12 @@ namespace Snowflake\Console;
use Exception;
use Snowflake\Snowflake;
use Swoole\Coroutine\Channel;
/**
* Class AbstractConsole
* @package BeReborn\Console
* @package Snowflake\Console
*/
abstract class AbstractConsole
{
@@ -33,7 +34,7 @@ abstract class AbstractConsole
public function __construct(array $config = [])
{
$this->_config = $config;
$this->signCommand(\BeReborn::createObject(DefaultCommand::class));
$this->signCommand(Snowflake::createObject(DefaultCommand::class));
}
/**
@@ -104,7 +105,7 @@ abstract class AbstractConsole
return;
}
foreach ($kernel as $command) {
$this->signCommand(\BeReborn::createObject($command));
$this->signCommand(Snowflake::createObject($command));
}
}
+6 -8
View File
@@ -6,18 +6,18 @@
* Time: 2:16
*/
namespace BeReborn\Console;
namespace Snowflake\Console;
use BeReborn\Base\BaseApplication;
use kafka\Protocol\SyncGroup;
use Snowflake\Abstracts\BaseApplication;
use Swoole\Coroutine\Channel;
use Swoole\Runtime;
use Swoole\Timer;
use Snowflake\Snowflake;
/**
* Class Application
* @package BeReborn\Console
* @package Snowflake\Console
*/
class Application extends BaseApplication
{
@@ -52,7 +52,7 @@ class Application extends BaseApplication
public function register($class)
{
if (is_string($class) || is_callable($class, true)) {
$class = \BeReborn::createObject($class);
$class = Snowflake::createObject($class);
}
$this->console->signCommand($class);
}
@@ -65,10 +65,8 @@ class Application extends BaseApplication
*/
public function run($kernel = null)
{
setCommand(true);
try {
$params = '';
$kernel = \BeReborn::make($kernel, Kernel::class);
$kernel = make($kernel, Kernel::class);
Runtime::enableCoroutine(SWOOLE_HOOK_ALL);
+1 -1
View File
@@ -7,7 +7,7 @@ use Snowflake\Abstracts\BaseObject;
/**
* Class Command
* @package BeReborn\Console
* @package Snowflake\Console
*/
abstract class Command extends BaseObject implements CommandInterface
{
+1 -1
View File
@@ -5,7 +5,7 @@ namespace Snowflake\Console;
/**
* Interface CommandInterface
* @package BeReborn\Console
* @package Snowflake\Console
*/
interface CommandInterface
{
+2 -2
View File
@@ -1,11 +1,11 @@
<?php
namespace BeReborn\Console;
namespace Snowflake\Console;
/**
* Class Console
* @package BeReborn\Console
* @package Snowflake\Console
*/
class Console extends AbstractConsole
{
+2 -2
View File
@@ -1,11 +1,11 @@
<?php
namespace BeReborn\Console;
namespace Snowflake\Console;
/**
* Class DefaultCommand
* @package BeReborn\Console
* @package Snowflake\Console
*/
class DefaultCommand extends Command
{
+5 -6
View File
@@ -4,15 +4,14 @@
namespace Snowflake\Console;
use HttpServer\Http\Context;
use HttpServer\Http\HttpHeaders;
use HttpServer\Http\HttpParams;
use HttpServer\Http\Request;
/**
* Class Dtl
* @package BeReborn\Console
* @package Snowflake\Console
*/
class Dtl
{
@@ -61,9 +60,9 @@ class Dtl
$request = new Request();
$request->fd = 0;
$request->params = new HttpParams([], $arrays, []);
$request->headers = new HttpParams([]);
$request->headers = new HttpHeaders([]);
Context::setRequest($request);
Context::setContext('request', $request);
return $arrays;
}
+1 -1
View File
@@ -1,7 +1,7 @@
<?php
namespace BeReborn\Console;
namespace Snowflake\Console;
interface ICommand
+1 -1
View File
@@ -1,7 +1,7 @@
<?php
namespace BeReborn\Console;
namespace Snowflake\Console;
class Kernel
+1 -1
View File
@@ -13,7 +13,7 @@ use Exception;
/**
* Class ArrayAccess
* @package BeReborn\Core
* @package Snowflake\Core
*/
class ArrayAccess
{
+1 -1
View File
@@ -10,7 +10,7 @@ namespace Snowflake\Core;
/**
* Class DateFormat
* @package BeReborn\Core
* @package Snowflake\Snowflake\Core
*/
class DateFormat
{
+1 -1
View File
@@ -6,7 +6,7 @@ namespace Snowflake\Core;
/**
* Class Help
* @package BeReborn\Core
* @package Snowflake\Snowflake\Core
*/
class Help
{
+1 -1
View File
@@ -10,7 +10,7 @@ namespace Snowflake\Core;
/**
* Class JSON
* @package BeReborn\Core
* @package Snowflake\Snowflake\Core
*/
class JSON
{
+1 -1
View File
@@ -5,7 +5,7 @@ namespace Snowflake\Core;
/**
* Class Reader
* @package BeReborn\Core
* @package Snowflake\Snowflake\Core
*/
class Reader
{
+1 -1
View File
@@ -7,7 +7,7 @@ use Exception;
/**
* Class Str
* @package BeReborn\Core
* @package Snowflake\Snowflake\Core
*/
class Str
{
+1 -1
View File
@@ -10,7 +10,7 @@ namespace Snowflake\Core;
/**
* Class Xml
* @package BeReborn\Core
* @package Snowflake\Snowflake\Core
*/
class Xml
{
+2 -2
View File
@@ -15,7 +15,7 @@ use Snowflake\Exception\NotFindClassException;
/**
* Class Container
* @package BeReborn\Di
* @package Snowflake\Di
*/
class Container extends BaseObject
{
@@ -132,7 +132,7 @@ class Container extends BaseObject
return $reflect->newInstanceArgs($dependencies ?? []);
}
if (!empty($dependencies) && $reflect->implementsInterface('BeReborn\Base\Configure')) {
if (!empty($dependencies) && $reflect->implementsInterface('Snowflake\Abstracts\Configure')) {
$dependencies[count($dependencies) - 1] = $config;
return $reflect->newInstanceArgs($dependencies);
}
+1 -1
View File
@@ -16,7 +16,7 @@ use Snowflake\Snowflake;
/**
* Class Service
* @package BeReborn\Di
* @package Snowflake\Snowflake\Di
*/
class Service extends Component
{
+1 -1
View File
@@ -18,7 +18,7 @@ use Snowflake\Snowflake;
/**
* Class ErrorHandler
*
* @package BeReborn\Base
* @package Snowflake\Snowflake\Base
* @property-read $asError
*/
class ErrorHandler extends Component implements ErrorInterface
+1 -1
View File
@@ -10,7 +10,7 @@ namespace Snowflake\Error;
/**
* Interface ErrorInterface
* @package BeReborn\Error
* @package Snowflake\Snowflake\Error
*/
interface ErrorInterface
{
+3 -3
View File
@@ -9,13 +9,13 @@
namespace Snowflake\Error;
use Exception;
use Snowflake\Core\JSON;
use Snowflake\Snowflake;
use Swoole\Coroutine\System;
use Swoole\Process;
/**
* Class Logger
* @package BeReborn\Error
* @package Snowflake\Snowflake\Error
*/
class Logger
{
@@ -102,7 +102,7 @@ class Logger
public static function print_r($message, $category = '')
{
/** @var Process $logger */
$logger = \BeReborn::getApp('logger');
$logger = Snowflake::get()->logger;
$logger->write(JSON::encode([$message, $category]));
}
+6
View File
@@ -148,6 +148,12 @@ class Event extends BaseObject
}
public function clean()
{
$this->_events = [];
}
/**
* @param $name
* @param null $handler
+1 -1
View File
@@ -13,7 +13,7 @@ use Throwable;
/**
* Class ComponentException
* @package BeReborn\Exception
* @package Snowflake\Snowflake\Exception
*/
class ComponentException extends \Exception
{
+1 -1
View File
@@ -13,7 +13,7 @@ use Throwable;
/**
* Class NotFindClassException
* @package BeReborn\Exception
* @package Snowflake\Snowflake\Exception
*/
class NotFindClassException extends \Exception
{
+1 -1
View File
@@ -10,7 +10,7 @@ use Snowflake\Abstracts\Pool;
/**
* Class Connection
* @package BeReborn\Pool
* @package Snowflake\Pool
*/
class Connection extends Pool
{
+1 -1
View File
@@ -12,7 +12,7 @@ use Exception;
/**
* Class RedisClient
* @package BeReborn\Pool
* @package Snowflake\Snowflake\Pool
*/
class RedisClient extends Pool
{
-1
View File
@@ -10,7 +10,6 @@ use Swoole\Timer;
/**
* Class Logfilemonitoring
* @package components
*/
class Leafleting extends Process
{
+1 -1
View File
@@ -9,7 +9,7 @@ use Snowflake\Application;
/**
* Class Process
* @package BeReborn\Service
* @package Snowflake\Snowflake\Service
*/
abstract class Process extends Component
{
+1 -2
View File
@@ -10,7 +10,6 @@ namespace Snowflake\Process;
use Exception;
use BeReborn;
use Snowflake\Snowflake;
use Swoole\Event;
use Swoole\Timer;
@@ -18,7 +17,7 @@ use swoole_process;
/**
* Class ServerInotify
* @package BeReborn\Server
* @package Snowflake\Snowflake\Server
*/
class ServerInotify extends Process
{
+15 -11
View File
@@ -9,9 +9,7 @@ use HttpServer\ServerManager;
use PHPMailer\PHPMailer\PHPMailer;
use PHPMailer\PHPMailer\SMTP;
use Snowflake\Abstracts\Component;
use Swoole\Process;
use Swoole\Process\Pool;
use Swoole\Timer;
/**
* Class Processes
@@ -39,6 +37,12 @@ class Processes extends Component
if ($event->exists(Event::PROCESS_WORKER_STOP)) {
$event->trigger(Event::PROCESS_WORKER_STOP);
}
$email = Config::get('admin.email');
if (!empty($email)) {
$nickname = Config::get('admin.name', false, '亲爱的开发者');
$this->system_mail($email, $nickname);
}
});
$server->on('message', function ($pool, $message) {
file_put_contents('a.log', func_get_args());
@@ -47,7 +51,11 @@ class Processes extends Component
}
protected function system_mail()
/**
* @param $email
* @param $nickname
*/
protected function system_mail($email, $nickname)
{
try {
$mail = new PHPMailer(true);
@@ -62,16 +70,12 @@ class Processes extends Component
$mail->Port = 587; // TCP port to connect to, use 465 for `PHPMailer::ENCRYPTION_SMTPS` above
//Recipients
$mail->setFrom('from@example.com', 'Mailer');
$mail->addAddress('joe@example.net', 'Joe User'); // Add a recipient
$mail->addAddress('ellen@example.com'); // Name is optional
$mail->addReplyTo('info@example.com', 'Information');
$mail->addCC('cc@example.com');
$mail->addBCC('bcc@example.com');
$mail->setFrom('system@example.com', '系统管理员');
$mail->addAddress($email, $nickname); // Add a recipient
// Attachments
$mail->addAttachment('/var/tmp/file.tar.gz'); // Add attachments
$mail->addAttachment('/tmp/image.jpg', 'new.jpg'); // Optional name
// $mail->addAttachment('/var/tmp/file.tar.gz'); // Add attachments
// $mail->addAttachment('/tmp/image.jpg', 'new.jpg'); // Optional name
// Content
$mail->isHTML(true); // Set email format to HTML
+13
View File
@@ -155,6 +155,19 @@ class Snowflake
}
public static function rename($tmp)
{
$hash = md5_file($tmp['tmp_name']);
$later = '.' . exif_imagetype($tmp['tmp_name']);
$match = '/(\w{12})(\w{5})(\w{9})(\w{6})/';
$tmp = preg_replace($match, '$1-$2-$3-$4', $hash);
return strtoupper($tmp) . $later;
}
/**
* @return bool
*/