├── App ├── HttpController │ ├── Index.php │ └── Router.php ├── Process │ ├── ConsumeProcess.php │ └── ProductProcess.php └── Utility │ ├── Config.php │ └── RedisQueue.php ├── EasySwooleEvent.php ├── Log └── swoole.log ├── README.md ├── Temp └── pid.pid ├── bootstrap.php ├── composer.json ├── composer.lock ├── dev.php ├── dump.rdb ├── easyswoole ├── produce.php └── vendor ├── autoload.php ├── bin ├── annotation-doc ├── easyswoole └── var-dump-server ├── cache ├── adapter-common │ ├── AbstractCachePool.php │ ├── CacheItem.php │ ├── Changelog.md │ ├── Exception │ │ ├── CacheException.php │ │ ├── CachePoolException.php │ │ └── InvalidArgumentException.php │ ├── HasExpirationTimestampInterface.php │ ├── JsonBinaryArmoring.php │ ├── LICENSE │ ├── PhpCacheItem.php │ ├── PhpCachePool.php │ ├── README.md │ ├── TagSupportWithArray.php │ └── composer.json ├── filesystem-adapter │ ├── Changelog.md │ ├── FilesystemCachePool.php │ ├── LICENSE │ ├── README.md │ └── composer.json └── tag-interop │ ├── .github │ └── PULL_REQUEST_TEMPLATE.md │ ├── .gitignore │ ├── .travis.yml │ ├── Changelog.md │ ├── LICENSE │ ├── README.md │ ├── TaggableCacheItemInterface.php │ ├── TaggableCacheItemPoolInterface.php │ └── composer.json ├── composer ├── ClassLoader.php ├── LICENSE ├── autoload_classmap.php ├── autoload_files.php ├── autoload_namespaces.php ├── autoload_psr4.php ├── autoload_real.php ├── autoload_static.php └── installed.json ├── doctrine └── lexer │ ├── LICENSE │ ├── README.md │ ├── composer.json │ └── lib │ └── Doctrine │ └── Common │ └── Lexer │ └── AbstractLexer.php ├── dragonmantank └── cron-expression │ ├── .editorconfig │ ├── CHANGELOG.md │ ├── LICENSE │ ├── README.md │ ├── composer.json │ ├── src │ └── Cron │ │ ├── AbstractField.php │ │ ├── CronExpression.php │ │ ├── DayOfMonthField.php │ │ ├── DayOfWeekField.php │ │ ├── FieldFactory.php │ │ ├── FieldInterface.php │ │ ├── HoursField.php │ │ ├── MinutesField.php │ │ └── MonthField.php │ └── tests │ └── Cron │ ├── AbstractFieldTest.php │ ├── CronExpressionTest.php │ ├── DayOfMonthFieldTest.php │ ├── DayOfWeekFieldTest.php │ ├── FieldFactoryTest.php │ ├── HoursFieldTest.php │ ├── MinutesFieldTest.php │ └── MonthFieldTest.php ├── easyswoole ├── annotation │ ├── README.md │ ├── composer.json │ ├── src │ │ ├── AbstractAnnotationTag.php │ │ ├── Annotation.php │ │ ├── Exception.php │ │ └── ValueParser.php │ └── tests │ │ ├── AnnotationTest.php │ │ ├── Tag │ │ ├── TestTagOne.php │ │ └── TestTagTwo.php │ │ └── ValueParserTest.php ├── bridge │ ├── README.md │ ├── composer.json │ └── src │ │ ├── Bridge.php │ │ ├── BridgeProcess.php │ │ ├── CommandInterface.php │ │ ├── Container.php │ │ ├── Exception.php │ │ └── Package.php ├── command │ ├── README.md │ ├── composer.json │ └── src │ │ ├── AbstractInterface │ │ ├── CallerInterface.php │ │ ├── CommandHelpInterface.php │ │ ├── CommandInterface.php │ │ └── ResultInterface.php │ │ ├── Caller.php │ │ ├── Color.php │ │ ├── CommandHelp.php │ │ ├── CommandManager.php │ │ └── Result.php ├── component │ ├── LICENSE │ ├── README.md │ ├── composer.json │ ├── src │ │ ├── AtomicManager.php │ │ ├── ChannelLock.php │ │ ├── ChannelManger.php │ │ ├── Container.php │ │ ├── Context │ │ │ ├── ContextItemHandlerInterface.php │ │ │ ├── ContextManager.php │ │ │ └── Exception │ │ │ │ └── ModifyError.php │ │ ├── CoroutineRunner │ │ │ ├── Runner.php │ │ │ └── Task.php │ │ ├── CoroutineSingleTon.php │ │ ├── Csp.php │ │ ├── Di.php │ │ ├── Event.php │ │ ├── Invoker.php │ │ ├── MultiContainer.php │ │ ├── MultiEvent.php │ │ ├── Process │ │ │ ├── AbstractProcess.php │ │ │ ├── Config.php │ │ │ ├── Exception.php │ │ │ ├── Manager.php │ │ │ ├── ProcessHelper.php │ │ │ └── Socket │ │ │ │ ├── AbstractTcpProcess.php │ │ │ │ ├── AbstractUnixProcess.php │ │ │ │ ├── TcpProcessConfig.php │ │ │ │ └── UnixProcessConfig.php │ │ ├── ReadyScheduler.php │ │ ├── Singleton.php │ │ ├── TableManager.php │ │ ├── Timer.php │ │ └── WaitGroup.php │ └── tests │ │ ├── ContextTest.php │ │ ├── DiTest.php │ │ ├── Lib │ │ ├── Bar.php │ │ ├── ContextContextItemHandler.php │ │ ├── Foo.php │ │ └── Get.php │ │ └── ReadySchedulerTest.php ├── config │ ├── README.md │ ├── composer.json │ ├── src │ │ ├── AbstractConfig.php │ │ ├── SplArrayConfig.php │ │ └── TableConfig.php │ └── tests │ │ ├── SplArrayTest.php │ │ └── TableTest.php ├── doctrine-annotations │ ├── LICENSE │ ├── README.md │ ├── composer.json │ ├── src │ │ ├── Annotation.php │ │ ├── Annotation │ │ │ ├── Attribute.php │ │ │ ├── Attributes.php │ │ │ ├── Enum.php │ │ │ ├── IgnoreAnnotation.php │ │ │ ├── Required.php │ │ │ └── Target.php │ │ ├── AnnotationException.php │ │ ├── AnnotationReader.php │ │ ├── AnnotationRegistry.php │ │ ├── DocLexer.php │ │ ├── DocParser.php │ │ ├── IndexedReader.php │ │ ├── PhpParser.php │ │ ├── Reader.php │ │ ├── SimpleAnnotationReader.php │ │ └── TokenParser.php │ └── tests │ │ ├── AbstractReaderTest.php │ │ ├── Annotation │ │ └── TargetTest.php │ │ ├── AnnotationReaderTest.php │ │ ├── AnnotationRegistryTest.php │ │ ├── AnnotationTest.php │ │ ├── DocLexerTest.php │ │ ├── DocParserTest.php │ │ ├── DummyClass.php │ │ ├── Fixtures │ │ ├── AbstractController.php │ │ ├── Annotation │ │ │ ├── AnnotWithDefaultValue.php │ │ │ ├── Autoload.php │ │ │ ├── CanBeAutoLoaded.php │ │ │ ├── LoadedUsingRegisterFile.php │ │ │ ├── Param.php │ │ │ ├── Route.php │ │ │ ├── Secure.php │ │ │ ├── ShouldNeverBeLoaded.php │ │ │ ├── SingleUseAnnotation.php │ │ │ ├── Template.php │ │ │ └── Version.php │ │ ├── AnnotationEnum.php │ │ ├── AnnotationEnumInvalid.php │ │ ├── AnnotationEnumLiteral.php │ │ ├── AnnotationEnumLiteralInvalid.php │ │ ├── AnnotationTargetAll.php │ │ ├── AnnotationTargetAnnotation.php │ │ ├── AnnotationTargetClass.php │ │ ├── AnnotationTargetMethod.php │ │ ├── AnnotationTargetPropertyMethod.php │ │ ├── AnnotationWithAttributes.php │ │ ├── AnnotationWithConstants.php │ │ ├── AnnotationWithRequiredAttributes.php │ │ ├── AnnotationWithRequiredAttributesWithoutConstructor.php │ │ ├── AnnotationWithTargetSyntaxError.php │ │ ├── AnnotationWithVarType.php │ │ ├── Api.php │ │ ├── ClassDDC1660.php │ │ ├── ClassNoNamespaceNoComment.php │ │ ├── ClassOverwritesTrait.php │ │ ├── ClassThatUsesTraitThatUsesAnotherTrait.php │ │ ├── ClassThatUsesTraitThatUsesAnotherTraitWithMethods.php │ │ ├── ClassUsesTrait.php │ │ ├── ClassWithAnnotationConstantReferenceWithDashes.php │ │ ├── ClassWithAnnotationEnum.php │ │ ├── ClassWithAnnotationWithTargetSyntaxError.php │ │ ├── ClassWithAnnotationWithVarType.php │ │ ├── ClassWithAtInDescriptionAndAnnotation.php │ │ ├── ClassWithClassAnnotationOnly.php │ │ ├── ClassWithClosure.php │ │ ├── ClassWithConstants.php │ │ ├── ClassWithFullPathUseStatement.php │ │ ├── ClassWithFullyQualifiedUseStatements.php │ │ ├── ClassWithIgnoreAnnotation.php │ │ ├── ClassWithImportedIgnoredAnnotation.php │ │ ├── ClassWithInvalidAnnotationContainingDashes.php │ │ ├── ClassWithInvalidAnnotationTargetAtClass.php │ │ ├── ClassWithInvalidAnnotationTargetAtMethod.php │ │ ├── ClassWithInvalidAnnotationTargetAtProperty.php │ │ ├── ClassWithNotRegisteredAnnotationUsed.php │ │ ├── ClassWithPHPCodeSnifferAnnotation.php │ │ ├── ClassWithPHPStanGenericsAnnotations.php │ │ ├── ClassWithPhpCsSuppressAnnotation.php │ │ ├── ClassWithRequire.php │ │ ├── ClassWithValidAnnotationTarget.php │ │ ├── Controller.php │ │ ├── ControllerWithParentClass.php │ │ ├── ControllerWithTrait.php │ │ ├── DifferentNamespacesPerFileWithClassAsFirst.php │ │ ├── DifferentNamespacesPerFileWithClassAsLast.php │ │ ├── EmptyInterface.php │ │ ├── EqualNamespacesPerFileWithClassAsFirst.php │ │ ├── EqualNamespacesPerFileWithClassAsLast.php │ │ ├── GlobalNamespacesPerFileWithClassAsFirst.php │ │ ├── GlobalNamespacesPerFileWithClassAsLast.php │ │ ├── GroupUseStatement.php │ │ ├── HereForTesting.php │ │ ├── IgnoreAnnotationClass.php │ │ ├── IgnoredNamespaces │ │ │ ├── AnnotatedAtClassLevel.php │ │ │ ├── AnnotatedAtMethodLevel.php │ │ │ ├── AnnotatedAtPropertyLevel.php │ │ │ └── AnnotatedWithAlias.php │ │ ├── InterfaceThatExtendsAnInterface.php │ │ ├── InterfaceWithConstants.php │ │ ├── InvalidAnnotationUsageButIgnoredClass.php │ │ ├── InvalidAnnotationUsageClass.php │ │ ├── MultipleClassesInFile.php │ │ ├── MultipleImportsInUseStatement.php │ │ ├── NamespaceAndClassCommentedOut.php │ │ ├── NamespaceWithClosureDeclaration.php │ │ ├── NamespacedSingleClassLOC1000.php │ │ ├── NoAnnotation.php │ │ ├── NonNamespacedClass.php │ │ ├── SingleClassLOC1000.php │ │ ├── TraitWithAnnotatedMethod.php │ │ └── Traits │ │ │ ├── EmptyTrait.php │ │ │ ├── SecretRouteTrait.php │ │ │ └── TraitThatUsesAnotherTrait.php │ │ ├── JsonArrayTest.php │ │ ├── PhpParserTest.php │ │ ├── PlainTextTest.php │ │ ├── ReservedKeywordsClasses.php │ │ ├── SimpleAnnotationReaderTest.php │ │ ├── Tag │ │ ├── NonePropertyTag.php │ │ └── PropertyTag.php │ │ ├── Ticket │ │ ├── DCOM141Test.php │ │ ├── DCOM58Entity.php │ │ └── DCOM58Test.php │ │ └── TopLevelAnnotation.php ├── easyswoole │ ├── .gitignore │ ├── LICENSE │ ├── README.md │ ├── bin │ │ └── easyswoole │ ├── composer.json │ ├── easyswoole.png │ ├── src │ │ ├── AbstractInterface │ │ │ └── Event.php │ │ ├── Bridge │ │ │ ├── AbstractCommand.php │ │ │ ├── Bridge.php │ │ │ └── DefaultCommand │ │ │ │ ├── Crontab.php │ │ │ │ ├── Process.php │ │ │ │ └── Status.php │ │ ├── Command │ │ │ ├── CommandInterface.php │ │ │ ├── CommandRunner.php │ │ │ ├── DefaultCommand │ │ │ │ ├── Crontab.php │ │ │ │ ├── Install.php │ │ │ │ ├── PhpUnit.php │ │ │ │ ├── Process.php │ │ │ │ ├── Server.php │ │ │ │ └── Task.php │ │ │ └── Utility.php │ │ ├── Config.php │ │ ├── Core.php │ │ ├── Crontab │ │ │ ├── AbstractCronTask.php │ │ │ ├── CronRunner.php │ │ │ ├── Crontab.php │ │ │ └── Exception │ │ │ │ ├── CronTaskNotExist.php │ │ │ │ ├── CronTaskRuleInvalid.php │ │ │ │ └── Exception.php │ │ ├── Http │ │ │ └── Dispatcher.php │ │ ├── Logger.php │ │ ├── Resource │ │ │ ├── Config._php │ │ │ ├── EasySwooleEvent._php │ │ │ ├── Http │ │ │ │ ├── 404.html │ │ │ │ ├── Index._php │ │ │ │ ├── Router._php │ │ │ │ └── welcome.html │ │ │ ├── bootstrap._php │ │ │ └── easyswoole │ │ ├── ServerManager.php │ │ ├── Swoole │ │ │ ├── EventHelper.php │ │ │ └── EventRegister.php │ │ ├── SysConst.php │ │ ├── Task │ │ │ └── TaskManager.php │ │ └── Trigger.php │ └── tests │ │ ├── ConfigTest.php │ │ ├── CoreTest.php │ │ ├── LoggerTest.php │ │ └── TriggerTest.php ├── http-annotation │ ├── LICENSE │ ├── README.md │ ├── bin │ │ └── annotation-doc │ ├── composer.json │ ├── src │ │ ├── Annotation │ │ │ ├── AnnotationBean.php │ │ │ ├── Cache.php │ │ │ ├── MethodAnnotation.php │ │ │ ├── ObjectAnnotation.php │ │ │ ├── Parser.php │ │ │ ├── ParserInterface.php │ │ │ └── PropertyAnnotation.php │ │ ├── AnnotationController.php │ │ ├── AnnotationREST.php │ │ ├── AnnotationTag │ │ │ ├── Api.php │ │ │ ├── ApiAuth.php │ │ │ ├── ApiDescription.php │ │ │ ├── ApiFail.php │ │ │ ├── ApiFailParam.php │ │ │ ├── ApiGroup.php │ │ │ ├── ApiGroupAuth.php │ │ │ ├── ApiGroupDescription.php │ │ │ ├── ApiRequestExample.php │ │ │ ├── ApiSuccess.php │ │ │ ├── ApiSuccessParam.php │ │ │ ├── CircuitBreaker.php │ │ │ ├── Context.php │ │ │ ├── Di.php │ │ │ ├── Inject.php │ │ │ ├── InjectParamsContext.php │ │ │ ├── Method.php │ │ │ └── Param.php │ │ ├── Exception │ │ │ ├── Annotation │ │ │ │ ├── ActionTimeout.php │ │ │ │ ├── InvalidTag.php │ │ │ │ ├── MethodNotAllow.php │ │ │ │ └── ParamValidateError.php │ │ │ └── Exception.php │ │ └── Utility │ │ │ ├── AnnotationDoc.php │ │ │ ├── DocCommand.php │ │ │ ├── Scanner.php │ │ │ └── docPage.tpl │ └── tests │ │ ├── AnnotationControllerTest.php │ │ ├── AnnotationParserTest.php │ │ ├── ControllerBase.php │ │ ├── NoneAnnotationControllerTest.php │ │ ├── NormalControllerTest.php │ │ ├── ParamTest.php │ │ ├── ScannerTest.php │ │ └── TestController │ │ ├── Annotation.php │ │ ├── NoneAnnotation.php │ │ ├── Normal.php │ │ ├── Param.php │ │ └── Test.php ├── http-client │ ├── .gitignore │ ├── README.md │ ├── composer.json │ ├── src │ │ ├── Bean │ │ │ ├── CURLFile.php │ │ │ ├── Response.php │ │ │ └── Url.php │ │ ├── Exception │ │ │ └── InvalidUrl.php │ │ ├── HttpClient.php │ │ └── Traits │ │ │ ├── Request.php │ │ │ └── UriManager.php │ └── tests │ │ ├── HttpTest.php │ │ ├── ResponseTest.php │ │ └── server │ │ ├── index.php │ │ └── server.php ├── http │ ├── LICENSE │ ├── README.md │ ├── composer.json │ ├── resource │ │ └── router.jpg │ ├── src │ │ ├── AbstractInterface │ │ │ ├── AbstractRouter.php │ │ │ ├── Controller.php │ │ │ └── REST.php │ │ ├── Dispatcher.php │ │ ├── Exception │ │ │ ├── ControllerPoolEmpty.php │ │ │ ├── Exception.php │ │ │ ├── FileException.php │ │ │ └── RouterError.php │ │ ├── GlobalParam │ │ │ ├── Hook.php │ │ │ └── SessionConfig.php │ │ ├── Message │ │ │ ├── Message.php │ │ │ ├── Request.php │ │ │ ├── Response.php │ │ │ ├── ServerRequest.php │ │ │ ├── Status.php │ │ │ ├── Stream.php │ │ │ ├── UploadFile.php │ │ │ └── Uri.php │ │ ├── Request.php │ │ ├── Response.php │ │ ├── UrlParser.php │ │ └── Utility.php │ └── tests │ │ ├── Controller │ │ └── Index.php │ │ ├── ControllerWithRouter │ │ ├── Index.php │ │ └── Router.php │ │ └── DispatchTest.php ├── log │ ├── README.md │ ├── composer.json │ └── src │ │ ├── Logger.php │ │ └── LoggerInterface.php ├── parsedown │ ├── README.md │ ├── composer.json │ └── src │ │ └── ParserDown.php ├── pool │ ├── README.md │ ├── composer.json │ ├── src │ │ ├── AbstractPool.php │ │ ├── Config.php │ │ ├── Exception │ │ │ ├── Exception.php │ │ │ └── PoolEmpty.php │ │ ├── MagicPool.php │ │ ├── Manager.php │ │ └── ObjectInterface.php │ └── tests │ │ ├── Pool.php │ │ ├── PoolObject.php │ │ └── PoolTest.php ├── redis-pool │ ├── README.md │ ├── composer.json │ └── src │ │ ├── Exception │ │ └── Exception.php │ │ ├── Pool.php │ │ ├── PoolConfig.php │ │ ├── RedisPool.php │ │ └── RedisPoolException.php ├── redis │ ├── README.md │ ├── composer.json │ ├── phpunit.php │ ├── src │ │ ├── Client.php │ │ ├── ClusterClient.php │ │ ├── CommandConst.php │ │ ├── CommandHandle │ │ │ ├── AbstractCommandHandle.php │ │ │ ├── AppEnd.php │ │ │ ├── Auth.php │ │ │ ├── BLPop.php │ │ │ ├── BRPop.php │ │ │ ├── BRPopLPush.php │ │ │ ├── BZPopMax.php │ │ │ ├── BZPopMin.php │ │ │ ├── BgRewriteAof.php │ │ │ ├── BgSave.php │ │ │ ├── BitCount.php │ │ │ ├── BitField.php │ │ │ ├── BitOp.php │ │ │ ├── BitPos.php │ │ │ ├── ClientGetName.php │ │ │ ├── ClientKill.php │ │ │ ├── ClientList.php │ │ │ ├── ClientPause.php │ │ │ ├── ClientSetName.php │ │ │ ├── ClusterCommand │ │ │ │ ├── ClusterAddSlots.php │ │ │ │ ├── ClusterCountFailureReports.php │ │ │ │ ├── ClusterCountKeySinSlot.php │ │ │ │ ├── ClusterDelSlots.php │ │ │ │ ├── ClusterFailOver.php │ │ │ │ ├── ClusterForget.php │ │ │ │ ├── ClusterGetKeySinSlot.php │ │ │ │ ├── ClusterInfo.php │ │ │ │ ├── ClusterKeySlot.php │ │ │ │ ├── ClusterMeet.php │ │ │ │ ├── ClusterNodes.php │ │ │ │ ├── ClusterReplicate.php │ │ │ │ ├── ClusterReset.php │ │ │ │ ├── ClusterSaveConfig.php │ │ │ │ ├── ClusterSetConfigEpoch.php │ │ │ │ ├── ClusterSetSlot.php │ │ │ │ ├── ClusterSlaves.php │ │ │ │ ├── ClusterSlots.php │ │ │ │ ├── Readonly.php │ │ │ │ └── Readwrite.php │ │ │ ├── Command.php │ │ │ ├── CommandCount.php │ │ │ ├── CommandGetKeys.php │ │ │ ├── CommandInfo.php │ │ │ ├── ConfigGet.php │ │ │ ├── ConfigResetStat.php │ │ │ ├── ConfigRewrite.php │ │ │ ├── ConfigSet.php │ │ │ ├── Construct.php │ │ │ ├── DBSize.php │ │ │ ├── DebugObject.php │ │ │ ├── DebugSegfault.php │ │ │ ├── Decr.php │ │ │ ├── DecrBy.php │ │ │ ├── Del.php │ │ │ ├── Discard.php │ │ │ ├── DiscardPipe.php │ │ │ ├── Dump.php │ │ │ ├── Exec.php │ │ │ ├── ExecPipe.php │ │ │ ├── Exists.php │ │ │ ├── Expire.php │ │ │ ├── ExpireAt.php │ │ │ ├── FlushAll.php │ │ │ ├── FlushDb.php │ │ │ ├── GeoAdd.php │ │ │ ├── GeoDist.php │ │ │ ├── GeoHash.php │ │ │ ├── GeoPos.php │ │ │ ├── GeoRadius.php │ │ │ ├── GeoRadiusByMember.php │ │ │ ├── Get.php │ │ │ ├── GetBit.php │ │ │ ├── GetRange.php │ │ │ ├── GetSet.php │ │ │ ├── HDel.php │ │ │ ├── HExists.php │ │ │ ├── HGet.php │ │ │ ├── HGetAll.php │ │ │ ├── HIncrBy.php │ │ │ ├── HIncrByFloat.php │ │ │ ├── HKeys.php │ │ │ ├── HLen.php │ │ │ ├── HMGet.php │ │ │ ├── HMSet.php │ │ │ ├── HScan.php │ │ │ ├── HSet.php │ │ │ ├── HSetNx.php │ │ │ ├── HValS.php │ │ │ ├── Incr.php │ │ │ ├── IncrBy.php │ │ │ ├── IncrByFloat.php │ │ │ ├── Info.php │ │ │ ├── Keys.php │ │ │ ├── LIndex.php │ │ │ ├── LInsert.php │ │ │ ├── LLen.php │ │ │ ├── LPop.php │ │ │ ├── LPuShx.php │ │ │ ├── LPush.php │ │ │ ├── LRange.php │ │ │ ├── LRem.php │ │ │ ├── LSet.php │ │ │ ├── LTrim.php │ │ │ ├── LastSave.php │ │ │ ├── MGet.php │ │ │ ├── MSet.php │ │ │ ├── MSetNx.php │ │ │ ├── Monitor.php │ │ │ ├── Move.php │ │ │ ├── Multi.php │ │ │ ├── PExpire.php │ │ │ ├── PSetEx.php │ │ │ ├── PSubscribe.php │ │ │ ├── PTTL.php │ │ │ ├── PUnSubscribe.php │ │ │ ├── Persist.php │ │ │ ├── PfAdd.php │ │ │ ├── PfCount.php │ │ │ ├── PfMerge.php │ │ │ ├── Ping.php │ │ │ ├── PubSub.php │ │ │ ├── Publish.php │ │ │ ├── RPop.php │ │ │ ├── RPopLPush.php │ │ │ ├── RPuShx.php │ │ │ ├── RPush.php │ │ │ ├── RandomKey.php │ │ │ ├── Rename.php │ │ │ ├── RenameNx.php │ │ │ ├── Role.php │ │ │ ├── SAdd.php │ │ │ ├── SCard.php │ │ │ ├── SDiff.php │ │ │ ├── SDiffStore.php │ │ │ ├── SInter.php │ │ │ ├── SInterStore.php │ │ │ ├── SIsMember.php │ │ │ ├── SMembers.php │ │ │ ├── SMove.php │ │ │ ├── SPop.php │ │ │ ├── SRandMember.php │ │ │ ├── SRem.php │ │ │ ├── SScan.php │ │ │ ├── SUnIonStore.php │ │ │ ├── SUnion.php │ │ │ ├── SYNC.php │ │ │ ├── Save.php │ │ │ ├── Scan.php │ │ │ ├── Select.php │ │ │ ├── Set.php │ │ │ ├── SetBit.php │ │ │ ├── SetEx.php │ │ │ ├── SetNx.php │ │ │ ├── SetRange.php │ │ │ ├── Shutdown.php │ │ │ ├── SlowLog.php │ │ │ ├── StartPipe.php │ │ │ ├── StrLen.php │ │ │ ├── Subscribe.php │ │ │ ├── SubscribeStop.php │ │ │ ├── Time.php │ │ │ ├── Ttl.php │ │ │ ├── Type.php │ │ │ ├── UnWatch.php │ │ │ ├── Unlink.php │ │ │ ├── Unsubscribe.php │ │ │ ├── Watch.php │ │ │ ├── XAck.php │ │ │ ├── XAdd.php │ │ │ ├── XClaim.php │ │ │ ├── XDel.php │ │ │ ├── XGroup.php │ │ │ ├── XInfo.php │ │ │ ├── XLen.php │ │ │ ├── XPending.php │ │ │ ├── XRange.php │ │ │ ├── XRead.php │ │ │ ├── XReadGroup.php │ │ │ ├── XRevRange.php │ │ │ ├── XTrim.php │ │ │ ├── ZAdd.php │ │ │ ├── ZCard.php │ │ │ ├── ZCount.php │ │ │ ├── ZInCrBy.php │ │ │ ├── ZInTerStore.php │ │ │ ├── ZLexCount.php │ │ │ ├── ZPopMax.php │ │ │ ├── ZPopMin.php │ │ │ ├── ZRange.php │ │ │ ├── ZRangeByLex.php │ │ │ ├── ZRangeByScore.php │ │ │ ├── ZRank.php │ │ │ ├── ZRem.php │ │ │ ├── ZRemRangeByLex.php │ │ │ ├── ZRemRangeByRank.php │ │ │ ├── ZRemRangeByScore.php │ │ │ ├── ZRevRange.php │ │ │ ├── ZRevRangeByScore.php │ │ │ ├── ZRevRank.php │ │ │ ├── ZScan.php │ │ │ ├── ZScore.php │ │ │ └── ZUnionStore.php │ │ ├── Config │ │ │ ├── RedisClusterConfig.php │ │ │ └── RedisConfig.php │ │ ├── CrcHash.php │ │ ├── Exception │ │ │ ├── RedisClusterException.php │ │ │ └── RedisException.php │ │ ├── Pipe.php │ │ ├── Redis.php │ │ ├── RedisCluster.php │ │ ├── RedisTransaction.php │ │ ├── Response.php │ │ └── UnixSocketClient.php │ └── tests │ │ ├── ClientTest.php │ │ ├── EventTest.php │ │ ├── OtherTest.php │ │ ├── RedisClusterTest.php │ │ ├── RedisTest.php │ │ └── UnixSocketRedisTest.php ├── session │ ├── README.md │ ├── composer.json │ └── src │ │ ├── Context.php │ │ ├── Exception.php │ │ ├── FileSession.php │ │ ├── Session.php │ │ └── SessionHandlerInterface.php ├── socket │ ├── LICENSE │ ├── README.md │ ├── composer.json │ └── src │ │ ├── AbstractInterface │ │ ├── Controller.php │ │ └── ParserInterface.php │ │ ├── Bean │ │ ├── Caller.php │ │ └── Response.php │ │ ├── Client │ │ ├── Tcp.php │ │ ├── Udp.php │ │ └── WebSocket.php │ │ ├── Config.php │ │ ├── Dispatcher.php │ │ ├── Exception │ │ ├── ControllerPoolEmpty.php │ │ └── Exception.php │ │ └── Tools │ │ ├── Client.php │ │ └── Protocol.php ├── spl │ ├── LICENSE │ ├── README.md │ ├── composer.json │ ├── src │ │ ├── Exception │ │ │ └── Exception.php │ │ ├── SplArray.php │ │ ├── SplBean.php │ │ ├── SplContextArray.php │ │ ├── SplDoubleLink.php │ │ ├── SplEnum.php │ │ ├── SplFileStream.php │ │ ├── SplStream.php │ │ ├── SplStrictArray.php │ │ └── SplString.php │ └── test │ │ ├── AllProperty74Test.php │ │ ├── ArrayTest.php │ │ ├── Bean │ │ ├── Shops.php │ │ ├── TestAllProperty.php │ │ └── TestBean.php │ │ ├── BeanTest.php │ │ ├── Enum │ │ └── Month.php │ │ ├── EnumTest.php │ │ ├── FileStreamTest.php │ │ ├── Stream │ │ └── TestStream.php │ │ ├── StreamTest.php │ │ └── StringTest.php ├── swoole-ide-helper │ ├── .gitignore │ ├── .travis.yml │ ├── LICENSE │ ├── README.md │ ├── bin │ │ ├── generator.php │ │ └── generator.sh │ ├── composer.json │ ├── config │ │ └── chinese │ │ │ └── server │ │ │ └── method │ │ │ └── send.php │ ├── output │ │ ├── alias │ │ │ ├── Context.php │ │ │ ├── Http │ │ │ │ └── Client │ │ │ │ │ └── Exception.php │ │ │ └── Http2 │ │ │ │ └── Client │ │ │ │ └── Exception.php │ │ ├── namespace │ │ │ ├── Coroutine │ │ │ │ ├── Context.php │ │ │ │ ├── Http │ │ │ │ │ └── Client │ │ │ │ │ │ └── Exception.php │ │ │ │ └── Http2 │ │ │ │ │ └── Client │ │ │ │ │ └── Exception.php │ │ │ ├── Scheduler.php │ │ │ └── Server │ │ │ │ └── Task.php │ │ ├── swoole │ │ │ ├── aliases.php │ │ │ ├── constants.php │ │ │ ├── functions.php │ │ │ └── namespace │ │ │ │ ├── Atomic.php │ │ │ │ ├── Atomic │ │ │ │ └── Long.php │ │ │ │ ├── Buffer.php │ │ │ │ ├── Client.php │ │ │ │ ├── Connection │ │ │ │ └── Iterator.php │ │ │ │ ├── Coroutine.php │ │ │ │ ├── Coroutine │ │ │ │ ├── Channel.php │ │ │ │ ├── Client.php │ │ │ │ ├── Context.php │ │ │ │ ├── Http │ │ │ │ │ ├── Client.php │ │ │ │ │ ├── Client │ │ │ │ │ │ └── Exception.php │ │ │ │ │ └── Server.php │ │ │ │ ├── Http2 │ │ │ │ │ ├── Client.php │ │ │ │ │ └── Client │ │ │ │ │ │ └── Exception.php │ │ │ │ ├── Iterator.php │ │ │ │ ├── MySQL.php │ │ │ │ ├── MySQL │ │ │ │ │ ├── Exception.php │ │ │ │ │ └── Statement.php │ │ │ │ ├── Redis.php │ │ │ │ ├── Scheduler.php │ │ │ │ ├── Socket.php │ │ │ │ ├── Socket │ │ │ │ │ └── Exception.php │ │ │ │ └── System.php │ │ │ │ ├── Error.php │ │ │ │ ├── Event.php │ │ │ │ ├── Exception.php │ │ │ │ ├── ExitException.php │ │ │ │ ├── Http │ │ │ │ ├── Request.php │ │ │ │ ├── Response.php │ │ │ │ └── Server.php │ │ │ │ ├── Http2 │ │ │ │ ├── Request.php │ │ │ │ └── Response.php │ │ │ │ ├── Lock.php │ │ │ │ ├── Process.php │ │ │ │ ├── Process │ │ │ │ └── Pool.php │ │ │ │ ├── Redis │ │ │ │ └── Server.php │ │ │ │ ├── Runtime.php │ │ │ │ ├── Server.php │ │ │ │ ├── Server │ │ │ │ ├── Port.php │ │ │ │ └── Task.php │ │ │ │ ├── Table.php │ │ │ │ ├── Table │ │ │ │ └── Row.php │ │ │ │ ├── Timer.php │ │ │ │ ├── Timer │ │ │ │ └── Iterator.php │ │ │ │ └── WebSocket │ │ │ │ ├── CloseFrame.php │ │ │ │ ├── Frame.php │ │ │ │ └── Server.php │ │ ├── swoole_async │ │ │ ├── aliases.php │ │ │ ├── functions.php │ │ │ └── namespace │ │ │ │ ├── Async.php │ │ │ │ ├── Async │ │ │ │ └── Client.php │ │ │ │ ├── Channel.php │ │ │ │ ├── Http │ │ │ │ └── Client.php │ │ │ │ ├── Memory │ │ │ │ ├── Pool.php │ │ │ │ └── Pool │ │ │ │ │ └── Slice.php │ │ │ │ ├── Mmap.php │ │ │ │ ├── MsgQueue.php │ │ │ │ ├── MySQL.php │ │ │ │ ├── MySQL │ │ │ │ └── Exception.php │ │ │ │ ├── Redis.php │ │ │ │ └── RingQueue.php │ │ ├── swoole_orm │ │ │ ├── aliases.php │ │ │ └── functions.php │ │ ├── swoole_postgresql │ │ │ ├── aliases.php │ │ │ ├── constants.php │ │ │ └── namespace │ │ │ │ └── Coroutine │ │ │ │ └── PostgreSQL.php │ │ └── swoole_serialize │ │ │ ├── aliases.php │ │ │ ├── constants.php │ │ │ └── namespace │ │ │ └── Serialize.php │ └── src │ │ ├── AbstractStubGenerator.php │ │ ├── Constant.php │ │ ├── Exception.php │ │ ├── Rules │ │ ├── AbstractRule.php │ │ └── NamespaceRule.php │ │ └── StubGenerators │ │ ├── Swoole.php │ │ ├── SwooleAsync.php │ │ ├── SwooleOrm.php │ │ ├── SwoolePostgresql.php │ │ └── SwooleSerialize.php ├── task │ ├── README.md │ ├── composer.json │ └── src │ │ ├── AbstractInterface │ │ ├── TaskInterface.php │ │ └── TaskQueueInterface.php │ │ ├── Config.php │ │ ├── Exception │ │ └── Exception.php │ │ ├── MessageQueue.php │ │ ├── Package.php │ │ ├── Protocol.php │ │ ├── Task.php │ │ ├── UnixClient.php │ │ └── Worker.php ├── trigger │ ├── README.md │ ├── composer.json │ └── src │ │ ├── Location.php │ │ ├── Trigger.php │ │ └── TriggerInterface.php ├── utility │ ├── LICENSE │ ├── README.md │ ├── composer.json │ └── src │ │ ├── ArrayToTextTable.php │ │ ├── File.php │ │ ├── Hash.php │ │ ├── IntStr.php │ │ ├── Mime │ │ ├── MimeDetector.php │ │ └── MimeDetectorException.php │ │ ├── MimeType.php │ │ ├── Random.php │ │ ├── SnowFlake.php │ │ ├── Str.php │ │ └── Time.php └── validate │ ├── README.md │ ├── composer.json │ ├── res │ └── easyswoole.png │ ├── src │ ├── Error.php │ ├── Rule.php │ ├── Validate.php │ └── ValidateInterface.php │ └── test │ ├── ActiveUrlTest.php │ ├── AllDigitalTest.php │ ├── AllowFileTest.php │ ├── AllowFileTypeTest.php │ ├── AlphaTest.php │ ├── BaseTestCase.php │ ├── BetweenLenTest.php │ ├── BetweenTest.php │ ├── BoolTest.php │ ├── CallUserRuleTest.php │ ├── DateAfterTest.php │ ├── DateBeforeTest.php │ ├── DifferentTest.php │ ├── DifferentWithColumnTest.php │ ├── EqualTest.php │ ├── EqualWithColumnTest.php │ ├── FloatTest.php │ ├── FuncTest.php │ ├── GreaterThanWithColumnTest.php │ ├── InArrayTest.php │ ├── IntegerTest.php │ ├── IsArrayTest.php │ ├── IsIpTest.php │ ├── LengthMaxTest.php │ ├── LengthMinTest.php │ ├── LengthTest.php │ ├── LessThanWithColumnTest.php │ ├── MaxTest.php │ ├── MinTest.php │ ├── NotEmptyTest.php │ ├── NotInArrayTest.php │ ├── NumericTest.php │ ├── RegexTest.php │ ├── RequiredTest.php │ ├── TimestampTest.php │ └── UrlTest.php ├── guzzlehttp ├── guzzle │ ├── CHANGELOG.md │ ├── LICENSE │ ├── README.md │ ├── UPGRADING.md │ ├── composer.json │ └── src │ │ ├── BodySummarizer.php │ │ ├── BodySummarizerInterface.php │ │ ├── Client.php │ │ ├── ClientInterface.php │ │ ├── ClientTrait.php │ │ ├── Cookie │ │ ├── CookieJar.php │ │ ├── CookieJarInterface.php │ │ ├── FileCookieJar.php │ │ ├── SessionCookieJar.php │ │ └── SetCookie.php │ │ ├── Exception │ │ ├── BadResponseException.php │ │ ├── ClientException.php │ │ ├── ConnectException.php │ │ ├── GuzzleException.php │ │ ├── InvalidArgumentException.php │ │ ├── RequestException.php │ │ ├── ServerException.php │ │ ├── TooManyRedirectsException.php │ │ └── TransferException.php │ │ ├── Handler │ │ ├── CurlFactory.php │ │ ├── CurlFactoryInterface.php │ │ ├── CurlHandler.php │ │ ├── CurlMultiHandler.php │ │ ├── EasyHandle.php │ │ ├── MockHandler.php │ │ ├── Proxy.php │ │ └── StreamHandler.php │ │ ├── HandlerStack.php │ │ ├── MessageFormatter.php │ │ ├── MessageFormatterInterface.php │ │ ├── Middleware.php │ │ ├── Pool.php │ │ ├── PrepareBodyMiddleware.php │ │ ├── RedirectMiddleware.php │ │ ├── RequestOptions.php │ │ ├── RetryMiddleware.php │ │ ├── TransferStats.php │ │ ├── Utils.php │ │ ├── functions.php │ │ └── functions_include.php ├── promises │ ├── CHANGELOG.md │ ├── LICENSE │ ├── Makefile │ ├── README.md │ ├── composer.json │ └── src │ │ ├── AggregateException.php │ │ ├── CancellationException.php │ │ ├── Coroutine.php │ │ ├── Create.php │ │ ├── Each.php │ │ ├── EachPromise.php │ │ ├── FulfilledPromise.php │ │ ├── Is.php │ │ ├── Promise.php │ │ ├── PromiseInterface.php │ │ ├── PromisorInterface.php │ │ ├── RejectedPromise.php │ │ ├── RejectionException.php │ │ ├── TaskQueue.php │ │ ├── TaskQueueInterface.php │ │ ├── Utils.php │ │ ├── functions.php │ │ └── functions_include.php └── psr7 │ ├── .github │ └── workflows │ │ ├── bc.yml │ │ ├── ci.yml │ │ └── integration.yml │ ├── .php_cs.dist │ ├── CHANGELOG.md │ ├── LICENSE │ ├── README.md │ ├── composer.json │ └── src │ ├── AppendStream.php │ ├── BufferStream.php │ ├── CachingStream.php │ ├── DroppingStream.php │ ├── FnStream.php │ ├── Header.php │ ├── InflateStream.php │ ├── LazyOpenStream.php │ ├── LimitStream.php │ ├── Message.php │ ├── MessageTrait.php │ ├── MimeType.php │ ├── MultipartStream.php │ ├── NoSeekStream.php │ ├── PumpStream.php │ ├── Query.php │ ├── Request.php │ ├── Response.php │ ├── Rfc7230.php │ ├── ServerRequest.php │ ├── Stream.php │ ├── StreamDecoratorTrait.php │ ├── StreamWrapper.php │ ├── UploadedFile.php │ ├── Uri.php │ ├── UriNormalizer.php │ ├── UriResolver.php │ ├── Utils.php │ ├── functions.php │ └── functions_include.php ├── jaeger ├── g-http │ ├── .gitignore │ ├── README.md │ ├── composer.json │ ├── examples │ │ ├── multi_request.php │ │ ├── multi_request_2.php │ │ ├── request_with_cache.php │ │ └── simple.php │ └── src │ │ ├── Cache.php │ │ ├── GHttp.php │ │ ├── MethodNotFoundException.php │ │ └── MultiRequest.php ├── phpquery-single │ ├── README.md │ ├── composer.json │ └── phpQuery.php └── querylist │ ├── .github │ └── FUNDING.yml │ ├── .gitignore │ ├── README-ZH.md │ ├── README.md │ ├── composer.json │ ├── logo.png │ ├── phpunit.xml │ ├── src │ ├── Config.php │ ├── Contracts │ │ ├── PluginContract.php │ │ └── ServiceProviderContract.php │ ├── Dom │ │ ├── Dom.php │ │ ├── Elements.php │ │ └── Query.php │ ├── Exceptions │ │ └── ServiceNotFoundException.php │ ├── Kernel.php │ ├── Providers │ │ ├── EncodeServiceProvider.php │ │ ├── HttpServiceProvider.php │ │ ├── PluginServiceProvider.php │ │ └── SystemServiceProvider.php │ ├── QueryList.php │ └── Services │ │ ├── EncodeService.php │ │ ├── HttpService.php │ │ ├── MultiRequestService.php │ │ └── PluginService.php │ └── tests │ ├── Dom │ ├── FindTest.php │ └── RulesTest.php │ ├── Feature │ ├── HttpTest.php │ ├── InstanceTest.php │ └── MethodTest.php │ ├── TestCaseBase.php │ ├── assets │ ├── snippet-1.html │ └── snippet-2.html │ └── bootstrap.php ├── league ├── flysystem │ ├── CODE_OF_CONDUCT.md │ ├── LICENSE │ ├── SECURITY.md │ ├── composer.json │ ├── deprecations.md │ └── src │ │ ├── Adapter │ │ ├── AbstractAdapter.php │ │ ├── AbstractFtpAdapter.php │ │ ├── CanOverwriteFiles.php │ │ ├── Ftp.php │ │ ├── Ftpd.php │ │ ├── Local.php │ │ ├── NullAdapter.php │ │ ├── Polyfill │ │ │ ├── NotSupportingVisibilityTrait.php │ │ │ ├── StreamedCopyTrait.php │ │ │ ├── StreamedReadingTrait.php │ │ │ ├── StreamedTrait.php │ │ │ └── StreamedWritingTrait.php │ │ └── SynologyFtp.php │ │ ├── AdapterInterface.php │ │ ├── Config.php │ │ ├── ConfigAwareTrait.php │ │ ├── ConnectionErrorException.php │ │ ├── ConnectionRuntimeException.php │ │ ├── Directory.php │ │ ├── Exception.php │ │ ├── File.php │ │ ├── FileExistsException.php │ │ ├── FileNotFoundException.php │ │ ├── Filesystem.php │ │ ├── FilesystemException.php │ │ ├── FilesystemInterface.php │ │ ├── FilesystemNotFoundException.php │ │ ├── Handler.php │ │ ├── InvalidRootException.php │ │ ├── MountManager.php │ │ ├── NotSupportedException.php │ │ ├── Plugin │ │ ├── AbstractPlugin.php │ │ ├── EmptyDir.php │ │ ├── ForcedCopy.php │ │ ├── ForcedRename.php │ │ ├── GetWithMetadata.php │ │ ├── ListFiles.php │ │ ├── ListPaths.php │ │ ├── ListWith.php │ │ ├── PluggableTrait.php │ │ └── PluginNotFoundException.php │ │ ├── PluginInterface.php │ │ ├── ReadInterface.php │ │ ├── RootViolationException.php │ │ ├── SafeStorage.php │ │ ├── UnreadableFileException.php │ │ ├── Util.php │ │ └── Util │ │ ├── ContentListingFormatter.php │ │ ├── MimeType.php │ │ └── StreamHasher.php └── mime-type-detection │ ├── CHANGELOG.md │ ├── LICENSE │ ├── composer.json │ └── src │ ├── EmptyExtensionToMimeTypeMap.php │ ├── ExtensionMimeTypeDetector.php │ ├── ExtensionToMimeTypeMap.php │ ├── FinfoMimeTypeDetector.php │ ├── GeneratedExtensionToMimeTypeMap.php │ └── MimeTypeDetector.php ├── nikic └── fast-route │ ├── .gitignore │ ├── .hhconfig │ ├── .travis.yml │ ├── FastRoute.hhi │ ├── LICENSE │ ├── README.md │ ├── composer.json │ ├── phpunit.xml │ ├── psalm.xml │ ├── src │ ├── BadRouteException.php │ ├── DataGenerator.php │ ├── DataGenerator │ │ ├── CharCountBased.php │ │ ├── GroupCountBased.php │ │ ├── GroupPosBased.php │ │ ├── MarkBased.php │ │ └── RegexBasedAbstract.php │ ├── Dispatcher.php │ ├── Dispatcher │ │ ├── CharCountBased.php │ │ ├── GroupCountBased.php │ │ ├── GroupPosBased.php │ │ ├── MarkBased.php │ │ └── RegexBasedAbstract.php │ ├── Route.php │ ├── RouteCollector.php │ ├── RouteParser.php │ ├── RouteParser │ │ └── Std.php │ ├── bootstrap.php │ └── functions.php │ └── test │ ├── Dispatcher │ ├── CharCountBasedTest.php │ ├── DispatcherTest.php │ ├── GroupCountBasedTest.php │ ├── GroupPosBasedTest.php │ └── MarkBasedTest.php │ ├── HackTypechecker │ ├── HackTypecheckerTest.php │ └── fixtures │ │ ├── all_options.php │ │ ├── empty_options.php │ │ └── no_options.php │ ├── RouteCollectorTest.php │ ├── RouteParser │ └── StdTest.php │ └── bootstrap.php ├── opis └── closure │ ├── CHANGELOG.md │ ├── LICENSE │ ├── NOTICE │ ├── README.md │ ├── autoload.php │ ├── composer.json │ ├── functions.php │ └── src │ ├── Analyzer.php │ ├── ClosureContext.php │ ├── ClosureScope.php │ ├── ClosureStream.php │ ├── ISecurityProvider.php │ ├── ReflectionClosure.php │ ├── SecurityException.php │ ├── SecurityProvider.php │ ├── SelfReference.php │ └── SerializableClosure.php ├── psr ├── cache │ ├── CHANGELOG.md │ ├── LICENSE.txt │ ├── README.md │ ├── composer.json │ └── src │ │ ├── CacheException.php │ │ ├── CacheItemInterface.php │ │ ├── CacheItemPoolInterface.php │ │ └── InvalidArgumentException.php ├── http-client │ ├── CHANGELOG.md │ ├── LICENSE │ ├── README.md │ ├── composer.json │ └── src │ │ ├── ClientExceptionInterface.php │ │ ├── ClientInterface.php │ │ ├── NetworkExceptionInterface.php │ │ └── RequestExceptionInterface.php ├── http-message │ ├── CHANGELOG.md │ ├── LICENSE │ ├── README.md │ ├── composer.json │ └── src │ │ ├── MessageInterface.php │ │ ├── RequestInterface.php │ │ ├── ResponseInterface.php │ │ ├── ServerRequestInterface.php │ │ ├── StreamInterface.php │ │ ├── UploadedFileInterface.php │ │ └── UriInterface.php ├── log │ ├── LICENSE │ ├── Psr │ │ └── Log │ │ │ ├── AbstractLogger.php │ │ │ ├── InvalidArgumentException.php │ │ │ ├── LogLevel.php │ │ │ ├── LoggerAwareInterface.php │ │ │ ├── LoggerAwareTrait.php │ │ │ ├── LoggerInterface.php │ │ │ ├── LoggerTrait.php │ │ │ ├── NullLogger.php │ │ │ └── Test │ │ │ ├── DummyTest.php │ │ │ ├── LoggerInterfaceTest.php │ │ │ └── TestLogger.php │ ├── README.md │ └── composer.json └── simple-cache │ ├── .editorconfig │ ├── LICENSE.md │ ├── README.md │ ├── composer.json │ └── src │ ├── CacheException.php │ ├── CacheInterface.php │ └── InvalidArgumentException.php ├── ralouphie └── getallheaders │ ├── LICENSE │ ├── README.md │ ├── composer.json │ └── src │ └── getallheaders.php ├── symfony ├── polyfill-mbstring │ ├── LICENSE │ ├── Mbstring.php │ ├── README.md │ ├── Resources │ │ └── unidata │ │ │ ├── lowerCase.php │ │ │ ├── titleCaseRegexp.php │ │ │ └── upperCase.php │ ├── bootstrap.php │ ├── bootstrap80.php │ └── composer.json ├── polyfill-php80 │ ├── LICENSE │ ├── Php80.php │ ├── README.md │ ├── Resources │ │ └── stubs │ │ │ ├── Attribute.php │ │ │ ├── Stringable.php │ │ │ ├── UnhandledMatchError.php │ │ │ └── ValueError.php │ ├── bootstrap.php │ └── composer.json └── var-dumper │ ├── CHANGELOG.md │ ├── Caster │ ├── AmqpCaster.php │ ├── ArgsStub.php │ ├── Caster.php │ ├── ClassStub.php │ ├── ConstStub.php │ ├── CutArrayStub.php │ ├── CutStub.php │ ├── DOMCaster.php │ ├── DateCaster.php │ ├── DoctrineCaster.php │ ├── DsCaster.php │ ├── DsPairStub.php │ ├── EnumStub.php │ ├── ExceptionCaster.php │ ├── FrameStub.php │ ├── GmpCaster.php │ ├── ImagineCaster.php │ ├── ImgStub.php │ ├── IntlCaster.php │ ├── LinkStub.php │ ├── MemcachedCaster.php │ ├── PdoCaster.php │ ├── PgSqlCaster.php │ ├── ProxyManagerCaster.php │ ├── RdKafkaCaster.php │ ├── RedisCaster.php │ ├── ReflectionCaster.php │ ├── ResourceCaster.php │ ├── SplCaster.php │ ├── StubCaster.php │ ├── SymfonyCaster.php │ ├── TraceStub.php │ ├── UuidCaster.php │ ├── XmlReaderCaster.php │ └── XmlResourceCaster.php │ ├── Cloner │ ├── AbstractCloner.php │ ├── ClonerInterface.php │ ├── Cursor.php │ ├── Data.php │ ├── DumperInterface.php │ ├── Stub.php │ └── VarCloner.php │ ├── Command │ ├── Descriptor │ │ ├── CliDescriptor.php │ │ ├── DumpDescriptorInterface.php │ │ └── HtmlDescriptor.php │ └── ServerDumpCommand.php │ ├── Dumper │ ├── AbstractDumper.php │ ├── CliDumper.php │ ├── ContextProvider │ │ ├── CliContextProvider.php │ │ ├── ContextProviderInterface.php │ │ ├── RequestContextProvider.php │ │ └── SourceContextProvider.php │ ├── ContextualizedDumper.php │ ├── DataDumperInterface.php │ ├── HtmlDumper.php │ └── ServerDumper.php │ ├── Exception │ └── ThrowingCasterException.php │ ├── LICENSE │ ├── README.md │ ├── Resources │ ├── bin │ │ └── var-dump-server │ ├── css │ │ └── htmlDescriptor.css │ ├── functions │ │ └── dump.php │ └── js │ │ └── htmlDescriptor.js │ ├── Server │ ├── Connection.php │ └── DumpServer.php │ ├── Test │ └── VarDumperTestTrait.php │ ├── VarDumper.php │ └── composer.json └── tightenco └── collect ├── .github └── workflows │ └── run-tests.yml ├── composer.json └── src └── Collect ├── Contracts └── Support │ ├── Arrayable.php │ ├── Htmlable.php │ └── Jsonable.php └── Support ├── Arr.php ├── Collection.php ├── Enumerable.php ├── HigherOrderCollectionProxy.php ├── HigherOrderWhenProxy.php ├── LazyCollection.php ├── Traits ├── EnumeratesValues.php └── Macroable.php ├── alias.php └── helpers.php /README.md: -------------------------------------------------------------------------------- 1 | # EasySwoole3.4.x实现简单的爬虫爬取网上的图片 2 | 3 | ## 之前写的版本已更新为最新版本,并且queryList也已经更新为正常使用的版本 4 | 5 | ### 利用EasySwoole 自己实现的协程redis以及redis连接池,实现自定义进程,达到队列消费,爬取数据的目的。并利用QueryList强大而优雅的CSS选择器来做采集,大大降低了PHP做采集的门槛而EasySwoole 是一款基于Swoole Server 开发的常驻内存型的分布式PHP框架,专为API而生,摆脱传统PHP运行模式在进程唤起和文件加载上带来的性能损失。 EasySwoole 高度封装了 Swoole Server 而依旧维持 Swoole Server 原有特性,支持同时混合监听HTTP、自定义TCP、UDP协议,让开发者以最低的学习成本和精力编写出多进程,可异步,高可用的应用服务 6 | 7 | 8 | - 下载clone 到本地 9 | - 执行 php easyswoole server start 即可看到效果 10 | - 只需要几分钟就可把全部图片爬取完成 11 | 12 | 13 | 14 | 15 | ### 本代码仅供学习参考,切勿用于非法用途,如有问题,请到easyswoole 官方QQ群联系我,搜索 “北溟有鱼QAQ” 即可 16 | -------------------------------------------------------------------------------- /Temp/pid.pid: -------------------------------------------------------------------------------- 1 | 14578 -------------------------------------------------------------------------------- /bootstrap.php: -------------------------------------------------------------------------------- 1 | , Tobias Nyholm 7 | * 8 | * This source file is subject to the MIT license that is bundled 9 | * with this source code in the file LICENSE. 10 | */ 11 | 12 | namespace Cache\Adapter\Common\Exception; 13 | 14 | /** 15 | * If an exception is caused by a pool or by the cache storage. 16 | * 17 | * @author Tobias Nyholm 18 | */ 19 | class CachePoolException extends CacheException 20 | { 21 | } 22 | -------------------------------------------------------------------------------- /vendor/cache/tag-interop/.github/PULL_REQUEST_TEMPLATE.md: -------------------------------------------------------------------------------- 1 | This is a READ ONLY repository. 2 | 3 | Please make your pull request to https://github.com/php-cache/cache 4 | 5 | Thank you for contributing. 6 | -------------------------------------------------------------------------------- /vendor/cache/tag-interop/.gitignore: -------------------------------------------------------------------------------- 1 | composer.lock 2 | vendor 3 | -------------------------------------------------------------------------------- /vendor/cache/tag-interop/.travis.yml: -------------------------------------------------------------------------------- 1 | language: php 2 | sudo: false 3 | 4 | matrix: 5 | include: 6 | - php: 7.0 7 | 8 | cache: 9 | directories: 10 | - "$HOME/.composer/cache" 11 | 12 | install: 13 | - composer update --prefer-dist --prefer-stable 14 | 15 | script: 16 | - ./vendor/bin/phpunit --coverage-clover=coverage.xml 17 | 18 | after_success: 19 | - pip install --user codecov && codecov 20 | 21 | notifications: 22 | email: false 23 | -------------------------------------------------------------------------------- /vendor/cache/tag-interop/Changelog.md: -------------------------------------------------------------------------------- 1 | # Change Log 2 | 3 | The change log describes what is "Added", "Removed", "Changed" or "Fixed" between each release. 4 | 5 | ## 1.0.1 6 | 7 | * Support PHP 8 8 | 9 | ## 1.0.0 10 | 11 | * First release 12 | 13 | 14 | -------------------------------------------------------------------------------- /vendor/composer/autoload_namespaces.php: -------------------------------------------------------------------------------- 1 | aliasFrom = $from; 20 | } 21 | return $this->aliasFrom; 22 | } 23 | 24 | public function __onParser(){} 25 | } -------------------------------------------------------------------------------- /vendor/easyswoole/annotation/src/Exception.php: -------------------------------------------------------------------------------- 1 | 4 | */ 5 | 6 | 7 | namespace EasySwoole\Command\AbstractInterface; 8 | 9 | 10 | interface CommandHelpInterface 11 | { 12 | public function addAction(string $actionName, string $desc); 13 | 14 | public function addActionOpt(string $actionOptName, string $desc); 15 | } -------------------------------------------------------------------------------- /vendor/easyswoole/command/src/AbstractInterface/CommandInterface.php: -------------------------------------------------------------------------------- 1 | msg; 17 | } 18 | 19 | function setResult($result) 20 | { 21 | $this->result = $result; 22 | } 23 | 24 | function getResult() 25 | { 26 | return $this->result; 27 | } 28 | 29 | function setMsg(?string $msg) 30 | { 31 | $this->msg = $msg; 32 | } 33 | } -------------------------------------------------------------------------------- /vendor/easyswoole/component/src/Context/ContextItemHandlerInterface.php: -------------------------------------------------------------------------------- 1 | addProcess($process->getProcess()); 19 | } 20 | } -------------------------------------------------------------------------------- /vendor/easyswoole/component/src/Singleton.php: -------------------------------------------------------------------------------- 1 | bar = $bar; 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /vendor/easyswoole/component/tests/Lib/Get.php: -------------------------------------------------------------------------------- 1 | bar = $bar; 15 | $this->foo = $foo; 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /vendor/easyswoole/config/src/AbstractConfig.php: -------------------------------------------------------------------------------- 1 | roles = $values['value']; 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /vendor/easyswoole/doctrine-annotations/tests/Fixtures/Annotation/ShouldNeverBeLoaded.php: -------------------------------------------------------------------------------- 1 | name = $values['value'] ?? null; 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /vendor/easyswoole/doctrine-annotations/tests/Fixtures/Annotation/Version.php: -------------------------------------------------------------------------------- 1 | 11 | */ 12 | class ControllerWithParentClass extends AbstractController 13 | { 14 | /** 15 | * @return mixed[] 16 | * 17 | * @Route("/", name="_demo") 18 | * @Template() 19 | */ 20 | public function indexAction(): array 21 | { 22 | return []; 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /vendor/easyswoole/doctrine-annotations/tests/Fixtures/DifferentNamespacesPerFileWithClassAsFirst.php: -------------------------------------------------------------------------------- 1 | setArgs(Manager::getInstance()->info()); 21 | return true; 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /vendor/easyswoole/easyswoole/src/Command/CommandInterface.php: -------------------------------------------------------------------------------- 1 | initialize(); 13 | return parent::runTest(); 14 | } 15 | 16 | function testTempDir() 17 | { 18 | $this->assertEquals(EASYSWOOLE_ROOT.'/Temp',EASYSWOOLE_TEMP_DIR); 19 | } 20 | 21 | } -------------------------------------------------------------------------------- /vendor/easyswoole/http-annotation/README.md: -------------------------------------------------------------------------------- 1 | # HttpAnnotation 2 | 3 | ## 安装 4 | ```bash 5 | composer require easyswoole/http-annotation 6 | ``` 7 | ## 注解规范 8 | 9 | ### Example 10 | ```php 11 | /** 12 | * Class ControllerA 13 | * @package EasySwoole\HttpAnnotation\Tests\TestController 14 | * @ApiGroup(groupName="A") 15 | * @ApiGroupDescription() 16 | */ 17 | class ControllerA extends AnnotationController 18 | { 19 | /** 20 | * @Api(path="/A/test") 21 | */ 22 | function test() 23 | { 24 | 25 | } 26 | 27 | /** 28 | * @Api(path="") 29 | */ 30 | function test2() 31 | { 32 | 33 | } 34 | } 35 | ``` -------------------------------------------------------------------------------- /vendor/easyswoole/http-annotation/src/Annotation/ParserInterface.php: -------------------------------------------------------------------------------- 1 | 4 | */ 5 | 6 | 7 | namespace EasySwoole\Http\Exception; 8 | 9 | 10 | class FileException extends Exception 11 | { 12 | 13 | } -------------------------------------------------------------------------------- /vendor/easyswoole/http/src/Exception/RouterError.php: -------------------------------------------------------------------------------- 1 | =5.3.0", 7 | "ext-mbstring": "*" 8 | }, 9 | "require-dev": { 10 | "phpunit/phpunit": "^4.8.35" 11 | }, 12 | "autoload": { 13 | "psr-4": { 14 | "EasySwoole\\ParserDown\\": "src/" 15 | } 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /vendor/easyswoole/pool/src/Exception/Exception.php: -------------------------------------------------------------------------------- 1 | func = $func; 13 | if($conf == null){ 14 | $conf = new Config(); 15 | } 16 | parent::__construct($conf); 17 | } 18 | 19 | protected function createObject() 20 | { 21 | return call_user_func($this->func,$this->getConfig()); 22 | } 23 | } -------------------------------------------------------------------------------- /vendor/easyswoole/pool/src/Manager.php: -------------------------------------------------------------------------------- 1 | container[$name] = $pool; 21 | return $this; 22 | } 23 | 24 | function get(string $name):?AbstractPool 25 | { 26 | if(isset($this->container[$name])){ 27 | return $this->container[$name]; 28 | } 29 | return null; 30 | } 31 | 32 | } -------------------------------------------------------------------------------- /vendor/easyswoole/pool/src/ObjectInterface.php: -------------------------------------------------------------------------------- 1 | autoPing; 19 | } 20 | 21 | /** 22 | * @param mixed $autoPing 23 | */ 24 | public function setAutoPing($autoPing): void 25 | { 26 | $this->autoPing = $autoPing; 27 | } 28 | 29 | } -------------------------------------------------------------------------------- /vendor/easyswoole/redis-pool/src/RedisPoolException.php: -------------------------------------------------------------------------------- 1 | getData(); 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /vendor/easyswoole/redis/src/CommandHandle/BgSave.php: -------------------------------------------------------------------------------- 1 | getData(); 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /vendor/easyswoole/redis/src/CommandHandle/ClientGetName.php: -------------------------------------------------------------------------------- 1 | getData(); 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /vendor/easyswoole/redis/src/CommandHandle/ClientKill.php: -------------------------------------------------------------------------------- 1 | getData(); 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /vendor/easyswoole/redis/src/CommandHandle/CommandCount.php: -------------------------------------------------------------------------------- 1 | getData(); 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /vendor/easyswoole/redis/src/CommandHandle/CommandGetKeys.php: -------------------------------------------------------------------------------- 1 | getData(); 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /vendor/easyswoole/redis/src/CommandHandle/CommandInfo.php: -------------------------------------------------------------------------------- 1 | getData(); 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /vendor/easyswoole/redis/src/CommandHandle/ConfigGet.php: -------------------------------------------------------------------------------- 1 | getData(); 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /vendor/easyswoole/redis/src/CommandHandle/ConfigResetStat.php: -------------------------------------------------------------------------------- 1 | config = $config; 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /vendor/easyswoole/redis/src/CommandHandle/DBSize.php: -------------------------------------------------------------------------------- 1 | getData(); 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /vendor/easyswoole/redis/src/CommandHandle/DebugObject.php: -------------------------------------------------------------------------------- 1 | getData(); 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /vendor/easyswoole/redis/src/CommandHandle/DebugSegfault.php: -------------------------------------------------------------------------------- 1 | getData(); 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /vendor/easyswoole/redis/src/CommandHandle/Decr.php: -------------------------------------------------------------------------------- 1 | getData(); 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /vendor/easyswoole/redis/src/CommandHandle/DecrBy.php: -------------------------------------------------------------------------------- 1 | getData(); 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /vendor/easyswoole/redis/src/CommandHandle/DiscardPipe.php: -------------------------------------------------------------------------------- 1 | redis->getPipe()->setIsStartPipe(false); 18 | return true; 19 | } 20 | 21 | 22 | public function handelRecv(Response $recv) 23 | { 24 | $this->redis->getPipe()->setCommandLog([]); 25 | return true; 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /vendor/easyswoole/redis/src/CommandHandle/Dump.php: -------------------------------------------------------------------------------- 1 | setClusterExecClientByKey($key); 17 | 18 | $command = [CommandConst::DUMP,$key]; 19 | $commandData = array_merge($command,$data); 20 | return $commandData; 21 | } 22 | 23 | 24 | public function handelRecv(Response $recv) 25 | { 26 | return $recv->getData(); 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /vendor/easyswoole/redis/src/CommandHandle/Exists.php: -------------------------------------------------------------------------------- 1 | setClusterExecClientByKey($key); 18 | 19 | $command = [CommandConst::EXISTS,$key]; 20 | $commandData = array_merge($command,$data); 21 | return $commandData; 22 | } 23 | 24 | 25 | public function handelRecv(Response $recv) 26 | { 27 | return $recv->getData(); 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /vendor/easyswoole/redis/src/CommandHandle/FlushAll.php: -------------------------------------------------------------------------------- 1 | setClusterExecClientByKey($key); 15 | $command = [CommandConst::GET, $key]; 16 | $commandData = $command; 17 | return $commandData; 18 | } 19 | 20 | public function handelRecv(Response $recv) 21 | { 22 | $data = $recv->getData(); 23 | return $this->unSerialize($data); 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /vendor/easyswoole/redis/src/CommandHandle/HKeys.php: -------------------------------------------------------------------------------- 1 | setClusterExecClientByKey($key); 17 | 18 | 19 | $command = [CommandConst::HKEYS,$key]; 20 | $commandData = array_merge($command,$data); 21 | return $commandData; 22 | } 23 | 24 | 25 | public function handelRecv(Response $recv) 26 | { 27 | return $recv->getData(); 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /vendor/easyswoole/redis/src/CommandHandle/HLen.php: -------------------------------------------------------------------------------- 1 | setClusterExecClientByKey($key); 17 | 18 | 19 | 20 | 21 | $command = [CommandConst::HLEN,$key]; 22 | $commandData = array_merge($command,$data); 23 | return $commandData; 24 | } 25 | 26 | 27 | public function handelRecv(Response $recv) 28 | { 29 | return $recv->getData(); 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /vendor/easyswoole/redis/src/CommandHandle/Incr.php: -------------------------------------------------------------------------------- 1 | setClusterExecClientByKey($key); 17 | 18 | 19 | $command = [CommandConst::INCR,$key]; 20 | $commandData = array_merge($command,$data); 21 | return $commandData; 22 | } 23 | 24 | 25 | public function handelRecv(Response $recv) 26 | { 27 | return $recv->getData(); 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /vendor/easyswoole/redis/src/CommandHandle/Keys.php: -------------------------------------------------------------------------------- 1 | getData(); 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /vendor/easyswoole/redis/src/CommandHandle/LLen.php: -------------------------------------------------------------------------------- 1 | setClusterExecClientByKey($key); 17 | 18 | $command = [CommandConst::LLEN,$key]; 19 | $commandData = array_merge($command,$data); 20 | return $commandData; 21 | } 22 | 23 | 24 | public function handelRecv(Response $recv) 25 | { 26 | return $recv->getData(); 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /vendor/easyswoole/redis/src/CommandHandle/LastSave.php: -------------------------------------------------------------------------------- 1 | getData(); 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /vendor/easyswoole/redis/src/CommandHandle/Move.php: -------------------------------------------------------------------------------- 1 | getData(); 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /vendor/easyswoole/redis/src/CommandHandle/PTTL.php: -------------------------------------------------------------------------------- 1 | setClusterExecClientByKey($key); 17 | 18 | 19 | 20 | 21 | $command = [CommandConst::PTTL,$key]; 22 | $commandData = array_merge($command,$data); 23 | return $commandData; 24 | } 25 | 26 | 27 | public function handelRecv(Response $recv) 28 | { 29 | return $recv->getData(); 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /vendor/easyswoole/redis/src/CommandHandle/PUnSubscribe.php: -------------------------------------------------------------------------------- 1 | getData(); 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /vendor/easyswoole/redis/src/CommandHandle/Persist.php: -------------------------------------------------------------------------------- 1 | setClusterExecClientByKey($key); 17 | 18 | 19 | 20 | 21 | $command = [CommandConst::PERSIST,$key]; 22 | $commandData = array_merge($command,$data); 23 | return $commandData; 24 | } 25 | 26 | 27 | public function handelRecv(Response $recv) 28 | { 29 | return $recv->getData(); 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /vendor/easyswoole/redis/src/CommandHandle/PfMerge.php: -------------------------------------------------------------------------------- 1 | getData(); 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /vendor/easyswoole/redis/src/CommandHandle/PubSub.php: -------------------------------------------------------------------------------- 1 | getData(); 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /vendor/easyswoole/redis/src/CommandHandle/RandomKey.php: -------------------------------------------------------------------------------- 1 | getData(); 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /vendor/easyswoole/redis/src/CommandHandle/Rename.php: -------------------------------------------------------------------------------- 1 | getData(); 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /vendor/easyswoole/redis/src/CommandHandle/SCard.php: -------------------------------------------------------------------------------- 1 | setClusterExecClientByKey($key); 17 | 18 | 19 | 20 | 21 | $command = [CommandConst::SCARD,$key]; 22 | $commandData = array_merge($command,$data); 23 | return $commandData; 24 | } 25 | 26 | 27 | public function handelRecv(Response $recv) 28 | { 29 | return $recv->getData(); 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /vendor/easyswoole/redis/src/CommandHandle/SInterStore.php: -------------------------------------------------------------------------------- 1 | getData(); 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /vendor/easyswoole/redis/src/CommandHandle/SYNC.php: -------------------------------------------------------------------------------- 1 | getData(); 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /vendor/easyswoole/redis/src/CommandHandle/Save.php: -------------------------------------------------------------------------------- 1 | getData(); 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /vendor/easyswoole/redis/src/CommandHandle/StartPipe.php: -------------------------------------------------------------------------------- 1 | redis->setPipe(new Pipe()); 20 | $this->redis->getPipe()->setIsStartPipe(true); 21 | return true; 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /vendor/easyswoole/redis/src/CommandHandle/SubscribeStop.php: -------------------------------------------------------------------------------- 1 | subscribeStop = true; 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /vendor/easyswoole/redis/src/CommandHandle/Time.php: -------------------------------------------------------------------------------- 1 | getData(); 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /vendor/easyswoole/redis/src/CommandHandle/Ttl.php: -------------------------------------------------------------------------------- 1 | setClusterExecClientByKey($key); 17 | 18 | 19 | 20 | 21 | $command = [CommandConst::TTL,$key]; 22 | $commandData = array_merge($command,$data); 23 | return $commandData; 24 | } 25 | 26 | 27 | public function handelRecv(Response $recv) 28 | { 29 | return $recv->getData(); 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /vendor/easyswoole/redis/src/CommandHandle/Type.php: -------------------------------------------------------------------------------- 1 | setClusterExecClientByKey($key); 17 | 18 | 19 | 20 | 21 | $command = [CommandConst::TYPE,$key]; 22 | $commandData = array_merge($command,$data); 23 | return $commandData; 24 | } 25 | 26 | 27 | public function handelRecv(Response $recv) 28 | { 29 | return $recv->getData(); 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /vendor/easyswoole/redis/src/CommandHandle/UnWatch.php: -------------------------------------------------------------------------------- 1 | getData(); 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /vendor/easyswoole/redis/src/CommandHandle/Watch.php: -------------------------------------------------------------------------------- 1 | setClusterExecClientByKey($key); 17 | 18 | 19 | 20 | 21 | $command = [CommandConst::ZCARD,$key]; 22 | $commandData = array_merge($command,$data); 23 | return $commandData; 24 | } 25 | 26 | 27 | public function handelRecv(Response $recv) 28 | { 29 | return $recv->getData(); 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /vendor/easyswoole/redis/src/Exception/RedisClusterException.php: -------------------------------------------------------------------------------- 1 | getStreamResource(),$mode); 22 | } 23 | 24 | function unlock($mode = LOCK_UN){ 25 | return flock($this->getStreamResource(),$mode); 26 | } 27 | } -------------------------------------------------------------------------------- /vendor/easyswoole/spl/test/Bean/Shops.php: -------------------------------------------------------------------------------- 1 | "d_d" 20 | ]; 21 | } 22 | 23 | // protected function setClassMapping(): array 24 | // { 25 | // return [ 26 | // 'shops' => Shops::class 27 | // ]; 28 | // } 29 | 30 | } -------------------------------------------------------------------------------- /vendor/easyswoole/spl/test/Enum/Month.php: -------------------------------------------------------------------------------- 1 | 5 | * @Copyright: copyright(2019) Easyswoole all rights reserved 6 | * @Description: SplArray 单元测试 7 | */ 8 | namespace EasySwoole\Spl\Test\Enum; 9 | 10 | use EasySwoole\Spl\SplEnum; 11 | 12 | class Month extends SplEnum { 13 | const JANUARY = 1; 14 | const FEBRUARY = 2; 15 | const MARCH = 3; 16 | const APRIL = 4; 17 | const MAY = 5; 18 | const JUNE = 6; 19 | const JULY = 7; 20 | const AUGUST = 8; 21 | const SEPTEMBER = 9; 22 | const OCTOBER = 10; 23 | const NOVEMBER = 11; 24 | const DECEMBER = 12; 25 | } -------------------------------------------------------------------------------- /vendor/easyswoole/spl/test/Stream/TestStream.php: -------------------------------------------------------------------------------- 1 | 100] 16 | */ 17 | function set(array $options):void 18 | { 19 | 20 | } 21 | 22 | function parallel(int $n, callable $call, ... $args) 23 | { 24 | 25 | } 26 | 27 | function start():bool 28 | { 29 | 30 | } 31 | } -------------------------------------------------------------------------------- /vendor/easyswoole/swoole-ide-helper/output/namespace/Server/Task.php: -------------------------------------------------------------------------------- 1 | extension = Constant::EXT_SWOOLE; 21 | 22 | return $this; 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /vendor/easyswoole/swoole-ide-helper/src/StubGenerators/SwooleAsync.php: -------------------------------------------------------------------------------- 1 | extension = Constant::EXT_SWOOLE_ASYNC; 21 | 22 | return $this; 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /vendor/easyswoole/swoole-ide-helper/src/StubGenerators/SwooleOrm.php: -------------------------------------------------------------------------------- 1 | extension = Constant::EXT_SWOOLE_ORM; 21 | 22 | return $this; 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /vendor/easyswoole/swoole-ide-helper/src/StubGenerators/SwoolePostgresql.php: -------------------------------------------------------------------------------- 1 | extension = Constant::EXT_SWOOLE_POSTGRESQL; 21 | 22 | return $this; 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /vendor/easyswoole/swoole-ide-helper/src/StubGenerators/SwooleSerialize.php: -------------------------------------------------------------------------------- 1 | extension = Constant::EXT_SWOOLE_SERIALIZE; 21 | 22 | return $this; 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /vendor/easyswoole/task/composer.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "easyswoole/task", 3 | "description": "A simple Queue implementation integrated into easySwoole", 4 | "type": "library", 5 | "keywords": [ 6 | "easySwoole" 7 | ], 8 | "license": "Apache-2.0", 9 | "autoload": { 10 | "psr-4": { 11 | "EasySwoole\\Task\\": "src/" 12 | } 13 | }, 14 | "require": { 15 | "ext-swoole": ">=4.4.5", 16 | "easyswoole/component": "^2.0", 17 | "easyswoole/spl": "^1.2", 18 | "opis/closure": "^3.5" 19 | }, 20 | "require-dev": { 21 | "easyswoole/swoole-ide-helper": "^1.0" 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /vendor/easyswoole/task/src/AbstractInterface/TaskInterface.php: -------------------------------------------------------------------------------- 1 | 5 | * Date: 18/12/11 6 | * Time: 下午6:48 7 | */ 8 | 9 | require __DIR__.'/../vendor/autoload.php'; 10 | use Jaeger\GHttp; 11 | 12 | $rt = GHttp::get('http://httpbin.org/get',[ 13 | 'wd' => 'QueryList' 14 | ],[ 15 | 'headers' => [ 16 | 'referer' => 'https://baidu.com', 17 | 'User-Agent' => 'Mozilla/5.0 (Windows NTChrome/58.0.3029.110 Safari/537.36', 18 | 'Cookie' => 'cookie xxx' 19 | ], 20 | ]); 21 | 22 | print_r($rt); 23 | -------------------------------------------------------------------------------- /vendor/jaeger/g-http/src/MethodNotFoundException.php: -------------------------------------------------------------------------------- 1 | 5 | * Date: 18/12/12 6 | * Time: 上午10:56 7 | */ 8 | 9 | namespace Jaeger; 10 | use Exception; 11 | use Throwable; 12 | 13 | class MethodNotFoundException extends Exception 14 | { 15 | public function __construct($message = "", $code = 0, Throwable $previous = null) 16 | { 17 | parent::__construct($message, $code, $previous); 18 | } 19 | } -------------------------------------------------------------------------------- /vendor/jaeger/querylist/.gitignore: -------------------------------------------------------------------------------- 1 | /vendor/ 2 | .idea/ 3 | composer.lock 4 | .DS_Store 5 | *.cache -------------------------------------------------------------------------------- /vendor/jaeger/querylist/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LuffyQAQ/ESreptile/9fdfffc9177fbc06f59d08b77b49f0f074149149/vendor/jaeger/querylist/logo.png -------------------------------------------------------------------------------- /vendor/jaeger/querylist/phpunit.xml: -------------------------------------------------------------------------------- 1 | 7 | 8 | 9 | ./tests 10 | 11 | 12 | 13 | 14 | 15 | src 16 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /vendor/jaeger/querylist/src/Contracts/PluginContract.php: -------------------------------------------------------------------------------- 1 | 5 | * Date: 2017/9/22 6 | */ 7 | 8 | namespace QL\Contracts; 9 | 10 | use QL\QueryList; 11 | 12 | interface PluginContract 13 | { 14 | public static function install(QueryList $queryList,...$opt); 15 | } -------------------------------------------------------------------------------- /vendor/jaeger/querylist/src/Contracts/ServiceProviderContract.php: -------------------------------------------------------------------------------- 1 | 5 | * Date: 2017/9/20 6 | */ 7 | 8 | namespace QL\Contracts; 9 | 10 | use QL\Kernel; 11 | 12 | interface ServiceProviderContract 13 | { 14 | public function register(Kernel $kernel); 15 | } -------------------------------------------------------------------------------- /vendor/jaeger/querylist/src/Dom/Dom.php: -------------------------------------------------------------------------------- 1 | 5 | * Date: 2017/9/19 6 | */ 7 | 8 | namespace QL\Dom; 9 | 10 | use phpQueryObject; 11 | 12 | class Dom 13 | { 14 | 15 | protected $document; 16 | 17 | /** 18 | * Dom constructor. 19 | */ 20 | public function __construct(phpQueryObject $document) 21 | { 22 | $this->document = $document; 23 | } 24 | 25 | public function find($selector) 26 | { 27 | $elements = $this->document->find($selector); 28 | return new Elements($elements); 29 | } 30 | } -------------------------------------------------------------------------------- /vendor/jaeger/querylist/src/Exceptions/ServiceNotFoundException.php: -------------------------------------------------------------------------------- 1 | 5 | * Date: 2017/9/21 6 | */ 7 | 8 | namespace QL\Exceptions; 9 | 10 | use Exception; 11 | 12 | class ServiceNotFoundException extends Exception 13 | { 14 | 15 | } -------------------------------------------------------------------------------- /vendor/jaeger/querylist/src/Providers/EncodeServiceProvider.php: -------------------------------------------------------------------------------- 1 | 5 | * Date: 2017/9/20 6 | */ 7 | 8 | namespace QL\Providers; 9 | 10 | use QL\Contracts\ServiceProviderContract; 11 | use QL\Kernel; 12 | use QL\Services\EncodeService; 13 | 14 | class EncodeServiceProvider implements ServiceProviderContract 15 | { 16 | public function register(Kernel $kernel) 17 | { 18 | $kernel->bind('encoding',function (string $outputEncoding,string $inputEncoding = null){ 19 | return EncodeService::convert($this,$outputEncoding,$inputEncoding); 20 | }); 21 | } 22 | } -------------------------------------------------------------------------------- /vendor/jaeger/querylist/src/Providers/PluginServiceProvider.php: -------------------------------------------------------------------------------- 1 | 5 | * Date: 2017/9/22 6 | */ 7 | 8 | namespace QL\Providers; 9 | 10 | use QL\Contracts\ServiceProviderContract; 11 | use QL\Kernel; 12 | use QL\Services\PluginService; 13 | 14 | class PluginServiceProvider implements ServiceProviderContract 15 | { 16 | public function register(Kernel $kernel) 17 | { 18 | $kernel->bind('use',function ($plugins,...$opt){ 19 | return PluginService::install($this,$plugins,...$opt); 20 | }); 21 | } 22 | 23 | } -------------------------------------------------------------------------------- /vendor/jaeger/querylist/src/Services/PluginService.php: -------------------------------------------------------------------------------- 1 | 5 | * Date: 2017/9/22 6 | */ 7 | 8 | namespace QL\Services; 9 | 10 | use QL\QueryList; 11 | 12 | class PluginService 13 | { 14 | public static function install(QueryList $queryList, $plugins, ...$opt) 15 | { 16 | if(is_array($plugins)) 17 | { 18 | foreach ($plugins as $plugin) { 19 | $plugin::install($queryList); 20 | } 21 | }else{ 22 | $plugins::install($queryList,...$opt); 23 | } 24 | return $queryList; 25 | } 26 | } -------------------------------------------------------------------------------- /vendor/jaeger/querylist/tests/TestCaseBase.php: -------------------------------------------------------------------------------- 1 | 2 |
3 | QueryList官网 4 | 这是图片 5 | 这是图片2 6 | QueryList文档 7 |
8 | 其它的一些文本 9 | -------------------------------------------------------------------------------- /vendor/jaeger/querylist/tests/assets/snippet-2.html: -------------------------------------------------------------------------------- 1 |
2 | 16 |
-------------------------------------------------------------------------------- /vendor/jaeger/querylist/tests/bootstrap.php: -------------------------------------------------------------------------------- 1 | filesystem->deleteDir($this->path); 18 | } 19 | 20 | /** 21 | * List the directory contents. 22 | * 23 | * @param bool $recursive 24 | * 25 | * @return array|bool directory contents or false 26 | */ 27 | public function getContents($recursive = false) 28 | { 29 | return $this->filesystem->listContents($this->path, $recursive); 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /vendor/league/flysystem/src/Exception.php: -------------------------------------------------------------------------------- 1 | filesystem = $filesystem; 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /vendor/league/flysystem/src/Plugin/PluginNotFoundException.php: -------------------------------------------------------------------------------- 1 | getRealPath() 15 | ) 16 | ); 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /vendor/league/mime-type-detection/CHANGELOG.md: -------------------------------------------------------------------------------- 1 | # Changelog 2 | 3 | ## 1.7.0 - 2021-01-18 4 | 5 | ### Added 6 | 7 | - Added a `bufferSampleSize` parameter to the `FinfoMimeTypeDetector` class that allows you to send a reduced content sample which costs less memory. 8 | 9 | ## 1.6.0 - 2021-01-18 10 | 11 | ### Changes 12 | 13 | - Updated generated mime-type map 14 | -------------------------------------------------------------------------------- /vendor/league/mime-type-detection/src/EmptyExtensionToMimeTypeMap.php: -------------------------------------------------------------------------------- 1 | =5.4.0" 20 | }, 21 | "require-dev": { 22 | "phpunit/phpunit": "^4.8.35|~5.7" 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /vendor/nikic/fast-route/src/BadRouteException.php: -------------------------------------------------------------------------------- 1 | markTestSkipped('PHP 5.6 required for MARK support'); 12 | } 13 | } 14 | 15 | protected function getDispatcherClass() 16 | { 17 | return 'FastRoute\\Dispatcher\\MarkBased'; 18 | } 19 | 20 | protected function getDataGeneratorClass() 21 | { 22 | return 'FastRoute\\DataGenerator\\MarkBased'; 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /vendor/nikic/fast-route/test/HackTypechecker/fixtures/empty_options.php: -------------------------------------------------------------------------------- 1 | {}, shape()); 7 | } 8 | 9 | function empty_options_cached(): \FastRoute\Dispatcher { 10 | return \FastRoute\cachedDispatcher($collector ==> {}, shape()); 11 | } 12 | -------------------------------------------------------------------------------- /vendor/nikic/fast-route/test/HackTypechecker/fixtures/no_options.php: -------------------------------------------------------------------------------- 1 | {}); 7 | } 8 | 9 | function no_options_cached(): \FastRoute\Dispatcher { 10 | return \FastRoute\cachedDispatcher($collector ==> {}); 11 | } 12 | -------------------------------------------------------------------------------- /vendor/nikic/fast-route/test/bootstrap.php: -------------------------------------------------------------------------------- 1 | =5.3.0" 14 | }, 15 | "autoload": { 16 | "psr-4": { 17 | "Psr\\Cache\\": "src/" 18 | } 19 | }, 20 | "extra": { 21 | "branch-alias": { 22 | "dev-master": "1.0.x-dev" 23 | } 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /vendor/psr/cache/src/CacheException.php: -------------------------------------------------------------------------------- 1 | logger = $logger; 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /vendor/psr/log/Psr/Log/Test/DummyTest.php: -------------------------------------------------------------------------------- 1 | =5.3.0" 15 | }, 16 | "autoload": { 17 | "psr-4": { 18 | "Psr\\Log\\": "Psr/Log/" 19 | } 20 | }, 21 | "extra": { 22 | "branch-alias": { 23 | "dev-master": "1.1.x-dev" 24 | } 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /vendor/psr/simple-cache/.editorconfig: -------------------------------------------------------------------------------- 1 | ; This file is for unifying the coding style for different editors and IDEs. 2 | ; More information at http://editorconfig.org 3 | 4 | root = true 5 | 6 | [*] 7 | charset = utf-8 8 | indent_size = 4 9 | indent_style = space 10 | end_of_line = lf 11 | insert_final_newline = true 12 | trim_trailing_whitespace = true 13 | -------------------------------------------------------------------------------- /vendor/psr/simple-cache/README.md: -------------------------------------------------------------------------------- 1 | PHP FIG Simple Cache PSR 2 | ======================== 3 | 4 | This repository holds all interfaces related to PSR-16. 5 | 6 | Note that this is not a cache implementation of its own. It is merely an interface that describes a cache implementation. See [the specification](https://github.com/php-fig/fig-standards/blob/master/accepted/PSR-16-simple-cache.md) for more details. 7 | 8 | You can find implementations of the specification by looking for packages providing the [psr/simple-cache-implementation](https://packagist.org/providers/psr/simple-cache-implementation) virtual package. 9 | -------------------------------------------------------------------------------- /vendor/psr/simple-cache/composer.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "psr/simple-cache", 3 | "description": "Common interfaces for simple caching", 4 | "keywords": ["psr", "psr-16", "cache", "simple-cache", "caching"], 5 | "license": "MIT", 6 | "authors": [ 7 | { 8 | "name": "PHP-FIG", 9 | "homepage": "http://www.php-fig.org/" 10 | } 11 | ], 12 | "require": { 13 | "php": ">=5.3.0" 14 | }, 15 | "autoload": { 16 | "psr-4": { 17 | "Psr\\SimpleCache\\": "src/" 18 | } 19 | }, 20 | "extra": { 21 | "branch-alias": { 22 | "dev-master": "1.0.x-dev" 23 | } 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /vendor/psr/simple-cache/src/CacheException.php: -------------------------------------------------------------------------------- 1 | =5.6" 13 | }, 14 | "require-dev": { 15 | "phpunit/phpunit": "^5 || ^6.5", 16 | "php-coveralls/php-coveralls": "^2.1" 17 | }, 18 | "autoload": { 19 | "files": ["src/getallheaders.php"] 20 | }, 21 | "autoload-dev": { 22 | "psr-4": { 23 | "getallheaders\\Tests\\": "tests/" 24 | } 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /vendor/symfony/polyfill-mbstring/README.md: -------------------------------------------------------------------------------- 1 | Symfony Polyfill / Mbstring 2 | =========================== 3 | 4 | This component provides a partial, native PHP implementation for the 5 | [Mbstring](https://php.net/mbstring) extension. 6 | 7 | More information can be found in the 8 | [main Polyfill README](https://github.com/symfony/polyfill/blob/master/README.md). 9 | 10 | License 11 | ======= 12 | 13 | This library is released under the [MIT license](LICENSE). 14 | -------------------------------------------------------------------------------- /vendor/symfony/polyfill-php80/Resources/stubs/Attribute.php: -------------------------------------------------------------------------------- 1 | flags = $flags; 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /vendor/symfony/polyfill-php80/Resources/stubs/Stringable.php: -------------------------------------------------------------------------------- 1 | 7 | * 8 | * For the full copyright and license information, please view the LICENSE 9 | * file that was distributed with this source code. 10 | */ 11 | 12 | namespace Symfony\Component\VarDumper\Dumper; 13 | 14 | use Symfony\Component\VarDumper\Cloner\Data; 15 | 16 | /** 17 | * DataDumperInterface for dumping Data objects. 18 | * 19 | * @author Nicolas Grekas 20 | */ 21 | interface DataDumperInterface 22 | { 23 | public function dump(Data $data); 24 | } 25 | -------------------------------------------------------------------------------- /vendor/symfony/var-dumper/README.md: -------------------------------------------------------------------------------- 1 | VarDumper Component 2 | =================== 3 | 4 | The VarDumper component provides mechanisms for walking through any arbitrary 5 | PHP variable. It provides a better `dump()` function that you can use instead 6 | of `var_dump`. 7 | 8 | Resources 9 | --------- 10 | 11 | * [Documentation](https://symfony.com/doc/current/components/var_dumper/introduction.html) 12 | * [Contributing](https://symfony.com/doc/current/contributing/index.html) 13 | * [Report issues](https://github.com/symfony/symfony/issues) and 14 | [send Pull Requests](https://github.com/symfony/symfony/pulls) 15 | in the [main Symfony repository](https://github.com/symfony/symfony) 16 | -------------------------------------------------------------------------------- /vendor/symfony/var-dumper/Resources/js/htmlDescriptor.js: -------------------------------------------------------------------------------- 1 | document.addEventListener('DOMContentLoaded', function() { 2 | let prev = null; 3 | Array.from(document.getElementsByTagName('article')).reverse().forEach(function (article) { 4 | const dedupId = article.dataset.dedupId; 5 | if (dedupId === prev) { 6 | article.getElementsByTagName('header')[0].classList.add('hidden'); 7 | } 8 | prev = dedupId; 9 | }); 10 | }); 11 | -------------------------------------------------------------------------------- /vendor/tightenco/collect/src/Collect/Contracts/Support/Arrayable.php: -------------------------------------------------------------------------------- 1 |