改名
This commit is contained in:
@@ -7,7 +7,7 @@ namespace Snowflake\Abstracts;
|
||||
|
||||
/**
|
||||
* Class BaseAnnotation
|
||||
* @package BeReborn\Annotation\Base
|
||||
* @package Snowflake\Snowflake\Annotation\Base
|
||||
*/
|
||||
abstract class BaseAnnotation extends Component
|
||||
{
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -15,7 +15,7 @@ use Snowflake\Snowflake;
|
||||
/**
|
||||
* Class BaseObject
|
||||
* @method defer()
|
||||
* @package BeReborn\Base
|
||||
* @package Snowflake\Snowflake\Base
|
||||
* @method afterInit
|
||||
* @method initialization
|
||||
*/
|
||||
|
||||
@@ -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();
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -15,7 +15,7 @@ use Snowflake\Abstracts\Component;
|
||||
|
||||
/**
|
||||
* Class Config
|
||||
* @package BeReborn\Base
|
||||
* @package Snowflake\Snowflake\Base
|
||||
*/
|
||||
class Config extends Component
|
||||
{
|
||||
|
||||
@@ -10,7 +10,7 @@ namespace Snowflake\Abstracts;
|
||||
|
||||
/**
|
||||
* Interface Configure
|
||||
* @package BeReborn\Base
|
||||
* @package Snowflake\Snowflake\Base
|
||||
*/
|
||||
interface Configure
|
||||
{
|
||||
|
||||
@@ -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)
|
||||
{
|
||||
|
||||
@@ -12,7 +12,7 @@ use Snowflake\Snowflake;
|
||||
|
||||
/**
|
||||
* Class Annotation
|
||||
* @package BeReborn\Annotation
|
||||
* @package Snowflake\Snowflake\Annotation
|
||||
* @property Websocket $websocket
|
||||
*/
|
||||
class Annotation extends BaseAnnotation
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -15,7 +15,7 @@ use Swoole\Coroutine\System;
|
||||
|
||||
/**
|
||||
* Class File
|
||||
* @package BeReborn\Cache
|
||||
* @package Snowflake\Snowflake\Cache
|
||||
*/
|
||||
class File extends Component implements ICache
|
||||
{
|
||||
|
||||
@@ -10,7 +10,7 @@ namespace Snowflake\Cache;
|
||||
|
||||
/**
|
||||
* Interface ICache
|
||||
* @package BeReborn\Cache
|
||||
* @package Snowflake\Snowflake\Cache
|
||||
*/
|
||||
interface ICache
|
||||
{
|
||||
|
||||
@@ -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):
|
||||
|
||||
@@ -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,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);
|
||||
|
||||
|
||||
@@ -7,7 +7,7 @@ use Snowflake\Abstracts\BaseObject;
|
||||
|
||||
/**
|
||||
* Class Command
|
||||
* @package BeReborn\Console
|
||||
* @package Snowflake\Console
|
||||
*/
|
||||
abstract class Command extends BaseObject implements CommandInterface
|
||||
{
|
||||
|
||||
@@ -5,7 +5,7 @@ namespace Snowflake\Console;
|
||||
|
||||
/**
|
||||
* Interface CommandInterface
|
||||
* @package BeReborn\Console
|
||||
* @package Snowflake\Console
|
||||
*/
|
||||
interface CommandInterface
|
||||
{
|
||||
|
||||
@@ -1,11 +1,11 @@
|
||||
<?php
|
||||
|
||||
|
||||
namespace BeReborn\Console;
|
||||
namespace Snowflake\Console;
|
||||
|
||||
/**
|
||||
* Class Console
|
||||
* @package BeReborn\Console
|
||||
* @package Snowflake\Console
|
||||
*/
|
||||
class Console extends AbstractConsole
|
||||
{
|
||||
|
||||
@@ -1,11 +1,11 @@
|
||||
<?php
|
||||
|
||||
|
||||
namespace BeReborn\Console;
|
||||
namespace Snowflake\Console;
|
||||
|
||||
/**
|
||||
* Class DefaultCommand
|
||||
* @package BeReborn\Console
|
||||
* @package Snowflake\Console
|
||||
*/
|
||||
class DefaultCommand extends Command
|
||||
{
|
||||
|
||||
@@ -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,7 +1,7 @@
|
||||
<?php
|
||||
|
||||
|
||||
namespace BeReborn\Console;
|
||||
namespace Snowflake\Console;
|
||||
|
||||
|
||||
interface ICommand
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
<?php
|
||||
|
||||
|
||||
namespace BeReborn\Console;
|
||||
namespace Snowflake\Console;
|
||||
|
||||
|
||||
class Kernel
|
||||
|
||||
@@ -13,7 +13,7 @@ use Exception;
|
||||
|
||||
/**
|
||||
* Class ArrayAccess
|
||||
* @package BeReborn\Core
|
||||
* @package Snowflake\Core
|
||||
*/
|
||||
class ArrayAccess
|
||||
{
|
||||
|
||||
@@ -10,7 +10,7 @@ namespace Snowflake\Core;
|
||||
|
||||
/**
|
||||
* Class DateFormat
|
||||
* @package BeReborn\Core
|
||||
* @package Snowflake\Snowflake\Core
|
||||
*/
|
||||
class DateFormat
|
||||
{
|
||||
|
||||
@@ -6,7 +6,7 @@ namespace Snowflake\Core;
|
||||
|
||||
/**
|
||||
* Class Help
|
||||
* @package BeReborn\Core
|
||||
* @package Snowflake\Snowflake\Core
|
||||
*/
|
||||
class Help
|
||||
{
|
||||
|
||||
@@ -10,7 +10,7 @@ namespace Snowflake\Core;
|
||||
|
||||
/**
|
||||
* Class JSON
|
||||
* @package BeReborn\Core
|
||||
* @package Snowflake\Snowflake\Core
|
||||
*/
|
||||
class JSON
|
||||
{
|
||||
|
||||
@@ -5,7 +5,7 @@ namespace Snowflake\Core;
|
||||
|
||||
/**
|
||||
* Class Reader
|
||||
* @package BeReborn\Core
|
||||
* @package Snowflake\Snowflake\Core
|
||||
*/
|
||||
class Reader
|
||||
{
|
||||
|
||||
+1
-1
@@ -7,7 +7,7 @@ use Exception;
|
||||
|
||||
/**
|
||||
* Class Str
|
||||
* @package BeReborn\Core
|
||||
* @package Snowflake\Snowflake\Core
|
||||
*/
|
||||
class Str
|
||||
{
|
||||
|
||||
+1
-1
@@ -10,7 +10,7 @@ namespace Snowflake\Core;
|
||||
|
||||
/**
|
||||
* Class Xml
|
||||
* @package BeReborn\Core
|
||||
* @package Snowflake\Snowflake\Core
|
||||
*/
|
||||
class Xml
|
||||
{
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
@@ -16,7 +16,7 @@ use Snowflake\Snowflake;
|
||||
|
||||
/**
|
||||
* Class Service
|
||||
* @package BeReborn\Di
|
||||
* @package Snowflake\Snowflake\Di
|
||||
*/
|
||||
class Service extends Component
|
||||
{
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -10,7 +10,7 @@ namespace Snowflake\Error;
|
||||
|
||||
/**
|
||||
* Interface ErrorInterface
|
||||
* @package BeReborn\Error
|
||||
* @package Snowflake\Snowflake\Error
|
||||
*/
|
||||
interface ErrorInterface
|
||||
{
|
||||
|
||||
@@ -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]));
|
||||
}
|
||||
|
||||
|
||||
@@ -148,6 +148,12 @@ class Event extends BaseObject
|
||||
}
|
||||
|
||||
|
||||
public function clean()
|
||||
{
|
||||
$this->_events = [];
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @param $name
|
||||
* @param null $handler
|
||||
|
||||
@@ -13,7 +13,7 @@ use Throwable;
|
||||
|
||||
/**
|
||||
* Class ComponentException
|
||||
* @package BeReborn\Exception
|
||||
* @package Snowflake\Snowflake\Exception
|
||||
*/
|
||||
class ComponentException extends \Exception
|
||||
{
|
||||
|
||||
@@ -13,7 +13,7 @@ use Throwable;
|
||||
|
||||
/**
|
||||
* Class NotFindClassException
|
||||
* @package BeReborn\Exception
|
||||
* @package Snowflake\Snowflake\Exception
|
||||
*/
|
||||
class NotFindClassException extends \Exception
|
||||
{
|
||||
|
||||
@@ -10,7 +10,7 @@ use Snowflake\Abstracts\Pool;
|
||||
|
||||
/**
|
||||
* Class Connection
|
||||
* @package BeReborn\Pool
|
||||
* @package Snowflake\Pool
|
||||
*/
|
||||
class Connection extends Pool
|
||||
{
|
||||
|
||||
@@ -12,7 +12,7 @@ use Exception;
|
||||
|
||||
/**
|
||||
* Class RedisClient
|
||||
* @package BeReborn\Pool
|
||||
* @package Snowflake\Snowflake\Pool
|
||||
*/
|
||||
class RedisClient extends Pool
|
||||
{
|
||||
|
||||
@@ -10,7 +10,6 @@ use Swoole\Timer;
|
||||
|
||||
/**
|
||||
* Class Logfilemonitoring
|
||||
* @package components
|
||||
*/
|
||||
class Leafleting extends Process
|
||||
{
|
||||
|
||||
@@ -9,7 +9,7 @@ use Snowflake\Application;
|
||||
|
||||
/**
|
||||
* Class Process
|
||||
* @package BeReborn\Service
|
||||
* @package Snowflake\Snowflake\Service
|
||||
*/
|
||||
abstract class Process extends Component
|
||||
{
|
||||
|
||||
@@ -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
@@ -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
|
||||
|
||||
@@ -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
|
||||
*/
|
||||
|
||||
Reference in New Issue
Block a user