├── .gitignore ├── Readme.md ├── doc ├── 1.前菜系列 │ ├── 1-1.餐前准备.md │ └── _vnote.json ├── _vnote.json └── 文档 │ ├── 1-安装.md │ ├── 2-HTTP服务.md │ ├── 3-配置信息.md │ ├── 4.1-websocket.md │ ├── 4.2-websocket room.md │ ├── 5.1-RPC.md │ ├── 6.1-任务异步投递.md │ └── _v_images │ ├── 20191129085845536_1773068036.png │ ├── 20191129090828768_1466275755.png │ ├── 20191129091042505_1321764960.png │ ├── 20191129091304527_1332838152.png │ ├── 20191129091607481_608898807.png │ ├── 20191129153530033_1913103300.png │ ├── 20191129155150484_835116255.png │ ├── 20191219154935625_769011361.png │ ├── 20191219160055082_1217356681.png │ ├── 20191219161935069_1037032598.png │ └── 20191220101654670_401390035.png └── src ├── .example.env ├── .gitignore ├── .travis.yml ├── LICENSE.txt ├── README.md ├── app ├── .htaccess ├── BaseController.php ├── ExceptionHandle.php ├── Request.php ├── common.php ├── controller │ └── Index.php ├── event.php ├── listener │ ├── RoomJoin.php │ ├── RoomLeave.php │ ├── TaskTest.php │ └── WebsocketTest.php ├── middleware.php ├── provider.php ├── rpc.php └── rpc │ ├── interfaces │ ├── DemoInterface.php │ └── TestInterface.php │ └── services │ ├── DemoService.php │ └── TestService.php ├── composer.json ├── composer.lock ├── config ├── app.php ├── cache.php ├── console.php ├── cookie.php ├── database.php ├── filesystem.php ├── lang.php ├── log.php ├── middleware.php ├── route.php ├── session.php ├── swoole.php ├── trace.php └── view.php ├── extend └── .gitignore ├── public ├── .htaccess ├── demo.html ├── favicon.ico ├── index.php ├── robots.txt ├── router.php └── static │ └── .gitignore ├── route └── app.php ├── runtime └── .gitignore ├── think ├── vendor ├── autoload.php ├── bin │ └── var-dump-server ├── composer │ ├── ClassLoader.php │ ├── LICENSE │ ├── autoload_classmap.php │ ├── autoload_files.php │ ├── autoload_namespaces.php │ ├── autoload_psr4.php │ ├── autoload_real.php │ ├── autoload_static.php │ └── installed.json ├── league │ ├── flysystem-cached-adapter │ │ ├── .editorconfig │ │ ├── .gitignore │ │ ├── .php_cs │ │ ├── .scrutinizer.yml │ │ ├── .travis.yml │ │ ├── LICENSE │ │ ├── clover │ │ │ └── .gitignore │ │ ├── composer.json │ │ ├── phpspec.yml │ │ ├── phpunit.php │ │ ├── phpunit.xml │ │ ├── readme.md │ │ ├── spec │ │ │ └── CachedAdapterSpec.php │ │ ├── src │ │ │ ├── CacheInterface.php │ │ │ ├── CachedAdapter.php │ │ │ └── Storage │ │ │ │ ├── AbstractCache.php │ │ │ │ ├── Adapter.php │ │ │ │ ├── Memcached.php │ │ │ │ ├── Memory.php │ │ │ │ ├── Noop.php │ │ │ │ ├── PhpRedis.php │ │ │ │ ├── Predis.php │ │ │ │ ├── Psr6Cache.php │ │ │ │ └── Stash.php │ │ └── tests │ │ │ ├── AdapterCacheTests.php │ │ │ ├── InspectionTests.php │ │ │ ├── MemcachedTests.php │ │ │ ├── MemoryCacheTests.php │ │ │ ├── NoopCacheTests.php │ │ │ ├── PhpRedisTests.php │ │ │ ├── PredisTests.php │ │ │ ├── Psr6CacheTest.php │ │ │ └── StashTest.php │ └── flysystem │ │ ├── LICENSE │ │ ├── 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 │ │ ├── Directory.php │ │ ├── Exception.php │ │ ├── File.php │ │ ├── FileExistsException.php │ │ ├── FileNotFoundException.php │ │ ├── Filesystem.php │ │ ├── FilesystemInterface.php │ │ ├── FilesystemNotFoundException.php │ │ ├── Handler.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 ├── nette │ ├── php-generator │ │ ├── composer.json │ │ ├── contributing.md │ │ ├── license.md │ │ ├── readme.md │ │ └── src │ │ │ └── PhpGenerator │ │ │ ├── ClassType.php │ │ │ ├── Closure.php │ │ │ ├── Constant.php │ │ │ ├── Dumper.php │ │ │ ├── Factory.php │ │ │ ├── GlobalFunction.php │ │ │ ├── Helpers.php │ │ │ ├── Method.php │ │ │ ├── Parameter.php │ │ │ ├── PhpFile.php │ │ │ ├── PhpLiteral.php │ │ │ ├── PhpNamespace.php │ │ │ ├── Printer.php │ │ │ ├── Property.php │ │ │ ├── PsrPrinter.php │ │ │ └── Traits │ │ │ ├── CommentAware.php │ │ │ ├── FunctionLike.php │ │ │ ├── NameAware.php │ │ │ └── VisibilityAware.php │ └── utils │ │ ├── .phpstorm.meta.php │ │ ├── composer.json │ │ ├── contributing.md │ │ ├── license.md │ │ ├── readme.md │ │ └── src │ │ ├── Iterators │ │ ├── CachingIterator.php │ │ └── Mapper.php │ │ └── Utils │ │ ├── ArrayHash.php │ │ ├── ArrayList.php │ │ ├── Arrays.php │ │ ├── Callback.php │ │ ├── DateTime.php │ │ ├── FileSystem.php │ │ ├── Html.php │ │ ├── IHtmlString.php │ │ ├── ITranslator.php │ │ ├── Image.php │ │ ├── Json.php │ │ ├── ObjectHelpers.php │ │ ├── ObjectMixin.php │ │ ├── Paginator.php │ │ ├── Random.php │ │ ├── Reflection.php │ │ ├── SmartObject.php │ │ ├── StaticClass.php │ │ ├── Strings.php │ │ ├── Validators.php │ │ └── exceptions.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 │ ├── container │ │ ├── .gitignore │ │ ├── LICENSE │ │ ├── README.md │ │ ├── composer.json │ │ └── src │ │ │ ├── ContainerExceptionInterface.php │ │ │ ├── ContainerInterface.php │ │ │ └── NotFoundExceptionInterface.php │ ├── log │ │ ├── .gitignore │ │ ├── LICENSE │ │ ├── Psr │ │ │ └── Log │ │ │ │ ├── AbstractLogger.php │ │ │ │ ├── InvalidArgumentException.php │ │ │ │ ├── LogLevel.php │ │ │ │ ├── LoggerAwareInterface.php │ │ │ │ ├── LoggerAwareTrait.php │ │ │ │ ├── LoggerInterface.php │ │ │ │ ├── LoggerTrait.php │ │ │ │ ├── NullLogger.php │ │ │ │ └── Test │ │ │ │ ├── LoggerInterfaceTest.php │ │ │ │ └── TestLogger.php │ │ ├── README.md │ │ └── composer.json │ └── simple-cache │ │ ├── .editorconfig │ │ ├── LICENSE.md │ │ ├── README.md │ │ ├── composer.json │ │ └── src │ │ ├── CacheException.php │ │ ├── CacheInterface.php │ │ └── InvalidArgumentException.php ├── services.php ├── swoole │ └── ide-helper │ │ ├── .gitignore │ │ ├── .travis.yml │ │ ├── LICENSE │ │ ├── README.md │ │ ├── bin │ │ ├── generator.php │ │ └── generator.sh │ │ ├── composer.json │ │ ├── config │ │ └── chinese │ │ │ └── server │ │ │ └── method │ │ │ └── send.php │ │ ├── output │ │ ├── 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 │ │ │ │ ├── http │ │ │ │ │ └── client.php │ │ │ │ ├── mysql.php │ │ │ │ └── redis.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_lib │ │ │ ├── alias.php │ │ │ ├── alias_ns.php │ │ │ ├── constants.php │ │ │ ├── core │ │ │ │ ├── ArrayObject.php │ │ │ │ ├── Constant.php │ │ │ │ ├── Coroutine │ │ │ │ │ ├── ObjectPool.php │ │ │ │ │ ├── Server.php │ │ │ │ │ ├── Server │ │ │ │ │ │ └── Connection.php │ │ │ │ │ └── WaitGroup.php │ │ │ │ ├── Curl │ │ │ │ │ ├── Exception.php │ │ │ │ │ └── Handler.php │ │ │ │ ├── Http │ │ │ │ │ └── StatusCode.php │ │ │ │ └── StringObject.php │ │ │ └── functions.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 │ │ └── swoole_zookeeper │ │ │ ├── aliases.php │ │ │ ├── constants.php │ │ │ └── namespace │ │ │ └── zookeeper.php │ │ └── src │ │ ├── AbstractStubGenerator.php │ │ ├── Constant.php │ │ ├── Exception.php │ │ ├── Rules │ │ ├── AbstractRule.php │ │ └── NamespaceRule.php │ │ └── StubGenerators │ │ ├── Swoole.php │ │ ├── SwooleAsync.php │ │ ├── SwooleLib.php │ │ ├── SwooleOrm.php │ │ ├── SwoolePostgresql.php │ │ ├── SwooleSerialize.php │ │ └── SwooleZookeeper.php ├── symfony │ ├── finder │ │ ├── .gitattributes │ │ ├── CHANGELOG.md │ │ ├── Comparator │ │ │ ├── Comparator.php │ │ │ ├── DateComparator.php │ │ │ └── NumberComparator.php │ │ ├── Exception │ │ │ ├── AccessDeniedException.php │ │ │ └── DirectoryNotFoundException.php │ │ ├── Finder.php │ │ ├── Gitignore.php │ │ ├── Glob.php │ │ ├── Iterator │ │ │ ├── CustomFilterIterator.php │ │ │ ├── DateRangeFilterIterator.php │ │ │ ├── DepthRangeFilterIterator.php │ │ │ ├── ExcludeDirectoryFilterIterator.php │ │ │ ├── FileTypeFilterIterator.php │ │ │ ├── FilecontentFilterIterator.php │ │ │ ├── FilenameFilterIterator.php │ │ │ ├── MultiplePcreFilterIterator.php │ │ │ ├── PathFilterIterator.php │ │ │ ├── RecursiveDirectoryIterator.php │ │ │ ├── SizeRangeFilterIterator.php │ │ │ └── SortableIterator.php │ │ ├── LICENSE │ │ ├── README.md │ │ ├── SplFileInfo.php │ │ └── composer.json │ ├── polyfill-mbstring │ │ ├── LICENSE │ │ ├── Mbstring.php │ │ ├── README.md │ │ ├── Resources │ │ │ └── unidata │ │ │ │ ├── lowerCase.php │ │ │ │ ├── titleCaseRegexp.php │ │ │ │ └── upperCase.php │ │ ├── bootstrap.php │ │ └── composer.json │ ├── polyfill-php72 │ │ ├── LICENSE │ │ ├── Php72.php │ │ ├── README.md │ │ ├── bootstrap.php │ │ └── composer.json │ └── var-dumper │ │ ├── .gitattributes │ │ ├── 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 │ │ ├── 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 └── topthink │ ├── framework │ ├── .gitignore │ ├── .travis.yml │ ├── CONTRIBUTING.md │ ├── LICENSE.txt │ ├── README.md │ ├── composer.json │ ├── logo.png │ ├── phpunit.xml.dist │ ├── src │ │ ├── helper.php │ │ ├── lang │ │ │ └── zh-cn.php │ │ ├── think │ │ │ ├── App.php │ │ │ ├── Cache.php │ │ │ ├── Config.php │ │ │ ├── Console.php │ │ │ ├── Container.php │ │ │ ├── Cookie.php │ │ │ ├── Db.php │ │ │ ├── Env.php │ │ │ ├── Event.php │ │ │ ├── Exception.php │ │ │ ├── Facade.php │ │ │ ├── File.php │ │ │ ├── Filesystem.php │ │ │ ├── Http.php │ │ │ ├── Lang.php │ │ │ ├── Log.php │ │ │ ├── Manager.php │ │ │ ├── Middleware.php │ │ │ ├── Pipeline.php │ │ │ ├── Request.php │ │ │ ├── Response.php │ │ │ ├── Route.php │ │ │ ├── Service.php │ │ │ ├── Session.php │ │ │ ├── Validate.php │ │ │ ├── View.php │ │ │ ├── cache │ │ │ │ ├── Driver.php │ │ │ │ ├── TagSet.php │ │ │ │ └── driver │ │ │ │ │ ├── File.php │ │ │ │ │ ├── Memcache.php │ │ │ │ │ ├── Memcached.php │ │ │ │ │ ├── Redis.php │ │ │ │ │ └── Wincache.php │ │ │ ├── console │ │ │ │ ├── Command.php │ │ │ │ ├── Input.php │ │ │ │ ├── LICENSE │ │ │ │ ├── Output.php │ │ │ │ ├── Table.php │ │ │ │ ├── bin │ │ │ │ │ ├── README.md │ │ │ │ │ └── hiddeninput.exe │ │ │ │ ├── command │ │ │ │ │ ├── Clear.php │ │ │ │ │ ├── Help.php │ │ │ │ │ ├── Lists.php │ │ │ │ │ ├── Make.php │ │ │ │ │ ├── RouteList.php │ │ │ │ │ ├── RunServer.php │ │ │ │ │ ├── ServiceDiscover.php │ │ │ │ │ ├── VendorPublish.php │ │ │ │ │ ├── Version.php │ │ │ │ │ ├── make │ │ │ │ │ │ ├── Command.php │ │ │ │ │ │ ├── Controller.php │ │ │ │ │ │ ├── Event.php │ │ │ │ │ │ ├── Listener.php │ │ │ │ │ │ ├── Middleware.php │ │ │ │ │ │ ├── Model.php │ │ │ │ │ │ ├── Service.php │ │ │ │ │ │ ├── Subscribe.php │ │ │ │ │ │ ├── Validate.php │ │ │ │ │ │ └── stubs │ │ │ │ │ │ │ ├── command.stub │ │ │ │ │ │ │ ├── controller.api.stub │ │ │ │ │ │ │ ├── controller.plain.stub │ │ │ │ │ │ │ ├── controller.stub │ │ │ │ │ │ │ ├── event.stub │ │ │ │ │ │ │ ├── listener.stub │ │ │ │ │ │ │ ├── middleware.stub │ │ │ │ │ │ │ ├── model.stub │ │ │ │ │ │ │ ├── service.stub │ │ │ │ │ │ │ ├── subscribe.stub │ │ │ │ │ │ │ └── validate.stub │ │ │ │ │ └── optimize │ │ │ │ │ │ ├── Route.php │ │ │ │ │ │ └── Schema.php │ │ │ │ ├── input │ │ │ │ │ ├── Argument.php │ │ │ │ │ ├── Definition.php │ │ │ │ │ └── Option.php │ │ │ │ └── output │ │ │ │ │ ├── Ask.php │ │ │ │ │ ├── Descriptor.php │ │ │ │ │ ├── Formatter.php │ │ │ │ │ ├── Question.php │ │ │ │ │ ├── descriptor │ │ │ │ │ └── Console.php │ │ │ │ │ ├── driver │ │ │ │ │ ├── Buffer.php │ │ │ │ │ ├── Console.php │ │ │ │ │ └── Nothing.php │ │ │ │ │ ├── formatter │ │ │ │ │ ├── Stack.php │ │ │ │ │ └── Style.php │ │ │ │ │ └── question │ │ │ │ │ ├── Choice.php │ │ │ │ │ └── Confirmation.php │ │ │ ├── contract │ │ │ │ ├── CacheHandlerInterface.php │ │ │ │ ├── LogHandlerInterface.php │ │ │ │ ├── ModelRelationInterface.php │ │ │ │ ├── SessionHandlerInterface.php │ │ │ │ └── TemplateHandlerInterface.php │ │ │ ├── event │ │ │ │ ├── AppInit.php │ │ │ │ ├── HttpEnd.php │ │ │ │ ├── HttpRun.php │ │ │ │ ├── LogWrite.php │ │ │ │ └── RouteLoaded.php │ │ │ ├── exception │ │ │ │ ├── ClassNotFoundException.php │ │ │ │ ├── ErrorException.php │ │ │ │ ├── FileException.php │ │ │ │ ├── FuncNotFoundException.php │ │ │ │ ├── Handle.php │ │ │ │ ├── HttpException.php │ │ │ │ ├── HttpResponseException.php │ │ │ │ ├── InvalidArgumentException.php │ │ │ │ ├── RouteNotFoundException.php │ │ │ │ └── ValidateException.php │ │ │ ├── facade │ │ │ │ ├── App.php │ │ │ │ ├── Cache.php │ │ │ │ ├── Config.php │ │ │ │ ├── Console.php │ │ │ │ ├── Cookie.php │ │ │ │ ├── Env.php │ │ │ │ ├── Event.php │ │ │ │ ├── Filesystem.php │ │ │ │ ├── Lang.php │ │ │ │ ├── Log.php │ │ │ │ ├── Middleware.php │ │ │ │ ├── Request.php │ │ │ │ ├── Route.php │ │ │ │ ├── Session.php │ │ │ │ ├── Validate.php │ │ │ │ └── View.php │ │ │ ├── file │ │ │ │ └── UploadedFile.php │ │ │ ├── filesystem │ │ │ │ ├── CacheStore.php │ │ │ │ ├── Driver.php │ │ │ │ └── driver │ │ │ │ │ └── Local.php │ │ │ ├── initializer │ │ │ │ ├── BootService.php │ │ │ │ ├── Error.php │ │ │ │ └── RegisterService.php │ │ │ ├── log │ │ │ │ ├── Channel.php │ │ │ │ ├── ChannelSet.php │ │ │ │ └── driver │ │ │ │ │ ├── File.php │ │ │ │ │ └── Socket.php │ │ │ ├── middleware │ │ │ │ ├── AllowCrossDomain.php │ │ │ │ ├── CheckRequestCache.php │ │ │ │ ├── FormTokenCheck.php │ │ │ │ ├── LoadLangPack.php │ │ │ │ └── SessionInit.php │ │ │ ├── response │ │ │ │ ├── File.php │ │ │ │ ├── Html.php │ │ │ │ ├── Json.php │ │ │ │ ├── Jsonp.php │ │ │ │ ├── Redirect.php │ │ │ │ ├── View.php │ │ │ │ └── Xml.php │ │ │ ├── route │ │ │ │ ├── Dispatch.php │ │ │ │ ├── Domain.php │ │ │ │ ├── Resource.php │ │ │ │ ├── Rule.php │ │ │ │ ├── RuleGroup.php │ │ │ │ ├── RuleItem.php │ │ │ │ ├── RuleName.php │ │ │ │ ├── Url.php │ │ │ │ └── dispatch │ │ │ │ │ ├── Callback.php │ │ │ │ │ ├── Controller.php │ │ │ │ │ ├── Redirect.php │ │ │ │ │ ├── Response.php │ │ │ │ │ ├── Url.php │ │ │ │ │ └── View.php │ │ │ ├── service │ │ │ │ ├── ModelService.php │ │ │ │ ├── PaginatorService.php │ │ │ │ └── ValidateService.php │ │ │ ├── session │ │ │ │ ├── Store.php │ │ │ │ └── driver │ │ │ │ │ ├── Cache.php │ │ │ │ │ └── File.php │ │ │ ├── validate │ │ │ │ └── ValidateRule.php │ │ │ └── view │ │ │ │ └── driver │ │ │ │ └── Php.php │ │ └── tpl │ │ │ └── think_exception.tpl │ └── tests │ │ ├── AppTest.php │ │ ├── CacheTest.php │ │ ├── ConfigTest.php │ │ ├── ContainerTest.php │ │ ├── DbTest.php │ │ ├── EnvTest.php │ │ ├── EventTest.php │ │ ├── FilesystemTest.php │ │ ├── HttpTest.php │ │ ├── LogTest.php │ │ ├── MiddlewareTest.php │ │ ├── SessionTest.php │ │ ├── ViewTest.php │ │ └── bootstrap.php │ ├── think-helper │ ├── .gitignore │ ├── LICENSE │ ├── README.md │ ├── composer.json │ └── src │ │ ├── Collection.php │ │ ├── contract │ │ ├── Arrayable.php │ │ └── Jsonable.php │ │ ├── helper.php │ │ └── helper │ │ ├── Arr.php │ │ └── Str.php │ ├── think-orm │ ├── .gitignore │ ├── LICENSE │ ├── README.md │ ├── composer.json │ └── src │ │ ├── DbManager.php │ │ ├── Model.php │ │ ├── Paginator.php │ │ ├── db │ │ ├── BaseQuery.php │ │ ├── Builder.php │ │ ├── CacheItem.php │ │ ├── Connection.php │ │ ├── ConnectionInterface.php │ │ ├── Fetch.php │ │ ├── Mongo.php │ │ ├── PDOConnection.php │ │ ├── Query.php │ │ ├── Raw.php │ │ ├── Where.php │ │ ├── builder │ │ │ ├── Mongo.php │ │ │ ├── Mysql.php │ │ │ ├── Oracle.php │ │ │ ├── Pgsql.php │ │ │ ├── Sqlite.php │ │ │ └── Sqlsrv.php │ │ ├── concern │ │ │ ├── AggregateQuery.php │ │ │ ├── JoinAndViewQuery.php │ │ │ ├── ModelRelationQuery.php │ │ │ ├── ParamsBind.php │ │ │ ├── ResultOperation.php │ │ │ ├── TableFieldInfo.php │ │ │ ├── TimeFieldQuery.php │ │ │ ├── Transaction.php │ │ │ └── WhereQuery.php │ │ ├── connector │ │ │ ├── Mongo.php │ │ │ ├── Mysql.php │ │ │ ├── Oracle.php │ │ │ ├── Pgsql.php │ │ │ ├── Sqlite.php │ │ │ ├── Sqlsrv.php │ │ │ └── pgsql.sql │ │ └── exception │ │ │ ├── BindParamException.php │ │ │ ├── DataNotFoundException.php │ │ │ ├── DbException.php │ │ │ ├── InvalidArgumentException.php │ │ │ ├── ModelEventException.php │ │ │ ├── ModelNotFoundException.php │ │ │ └── PDOException.php │ │ ├── facade │ │ └── Db.php │ │ ├── model │ │ ├── Collection.php │ │ ├── Pivot.php │ │ ├── Relation.php │ │ ├── concern │ │ │ ├── Attribute.php │ │ │ ├── Conversion.php │ │ │ ├── ModelEvent.php │ │ │ ├── OptimLock.php │ │ │ ├── RelationShip.php │ │ │ ├── SoftDelete.php │ │ │ └── TimeStamp.php │ │ └── relation │ │ │ ├── BelongsTo.php │ │ │ ├── BelongsToMany.php │ │ │ ├── HasMany.php │ │ │ ├── HasManyThrough.php │ │ │ ├── HasOne.php │ │ │ ├── HasOneThrough.php │ │ │ ├── MorphMany.php │ │ │ ├── MorphOne.php │ │ │ ├── MorphTo.php │ │ │ └── OneToOne.php │ │ └── paginator │ │ └── driver │ │ └── Bootstrap.php │ ├── think-swoole │ ├── .gitignore │ ├── LICENSE │ ├── README.md │ ├── composer.json │ └── src │ │ ├── App.php │ │ ├── FileWatcher.php │ │ ├── Http.php │ │ ├── Manager.php │ │ ├── PidManager.php │ │ ├── Sandbox.php │ │ ├── Service.php │ │ ├── Table.php │ │ ├── Websocket.php │ │ ├── command │ │ ├── RpcInterface.php │ │ └── Server.php │ │ ├── concerns │ │ ├── InteractsWithHttp.php │ │ ├── InteractsWithPool.php │ │ ├── InteractsWithPoolConnector.php │ │ ├── InteractsWithRpc.php │ │ ├── InteractsWithServer.php │ │ ├── InteractsWithSwooleTable.php │ │ └── InteractsWithWebsocket.php │ │ ├── config │ │ └── swoole.php │ │ ├── contract │ │ ├── ResetterInterface.php │ │ ├── rpc │ │ │ └── ParserInterface.php │ │ └── websocket │ │ │ ├── HandlerInterface.php │ │ │ ├── ParserInterface.php │ │ │ └── RoomInterface.php │ │ ├── coroutine │ │ └── Context.php │ │ ├── exception │ │ ├── RpcClientException.php │ │ └── RpcResponseException.php │ │ ├── facade │ │ └── Server.php │ │ ├── helpers.php │ │ ├── middleware │ │ └── ResetVarDumper.php │ │ ├── pool │ │ ├── Cache.php │ │ ├── Db.php │ │ ├── cache │ │ │ └── Store.php │ │ └── db │ │ │ └── Connection.php │ │ ├── resetters │ │ ├── ClearInstances.php │ │ ├── ResetConfig.php │ │ ├── ResetEvent.php │ │ └── ResetService.php │ │ ├── rpc │ │ ├── Error.php │ │ ├── JsonParser.php │ │ ├── Protocol.php │ │ ├── client │ │ │ ├── Client.php │ │ │ ├── Connection.php │ │ │ ├── Pool.php │ │ │ └── Proxy.php │ │ └── server │ │ │ └── Dispatcher.php │ │ └── websocket │ │ ├── Pusher.php │ │ ├── Room.php │ │ ├── SimpleParser.php │ │ ├── room │ │ ├── Redis.php │ │ └── Table.php │ │ └── socketio │ │ ├── Controller.php │ │ ├── Handler.php │ │ ├── Packet.php │ │ └── Parser.php │ └── think-trace │ ├── .gitignore │ ├── LICENSE │ ├── README.md │ ├── composer.json │ └── src │ ├── Console.php │ ├── Html.php │ ├── Service.php │ ├── TraceDebug.php │ ├── config.php │ └── tpl │ └── page_trace.tpl └── view └── README.md /.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xavieryang007/think-swoole-demo/HEAD/.gitignore -------------------------------------------------------------------------------- /Readme.md: -------------------------------------------------------------------------------- 1 | 计划开始编写一份基于think-swoole的文档和使用demo,并记录相关知识体系 2 | 3 | 4 | -------------------------------------------------------------------------------- /doc/1.前菜系列/1-1.餐前准备.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xavieryang007/think-swoole-demo/HEAD/doc/1.前菜系列/1-1.餐前准备.md -------------------------------------------------------------------------------- /doc/1.前菜系列/_vnote.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xavieryang007/think-swoole-demo/HEAD/doc/1.前菜系列/_vnote.json -------------------------------------------------------------------------------- /doc/_vnote.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xavieryang007/think-swoole-demo/HEAD/doc/_vnote.json -------------------------------------------------------------------------------- /doc/文档/1-安装.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xavieryang007/think-swoole-demo/HEAD/doc/文档/1-安装.md -------------------------------------------------------------------------------- /doc/文档/2-HTTP服务.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xavieryang007/think-swoole-demo/HEAD/doc/文档/2-HTTP服务.md -------------------------------------------------------------------------------- /doc/文档/3-配置信息.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xavieryang007/think-swoole-demo/HEAD/doc/文档/3-配置信息.md -------------------------------------------------------------------------------- /doc/文档/4.1-websocket.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xavieryang007/think-swoole-demo/HEAD/doc/文档/4.1-websocket.md -------------------------------------------------------------------------------- /doc/文档/4.2-websocket room.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xavieryang007/think-swoole-demo/HEAD/doc/文档/4.2-websocket room.md -------------------------------------------------------------------------------- /doc/文档/5.1-RPC.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xavieryang007/think-swoole-demo/HEAD/doc/文档/5.1-RPC.md -------------------------------------------------------------------------------- /doc/文档/6.1-任务异步投递.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xavieryang007/think-swoole-demo/HEAD/doc/文档/6.1-任务异步投递.md -------------------------------------------------------------------------------- /doc/文档/_v_images/20191129085845536_1773068036.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xavieryang007/think-swoole-demo/HEAD/doc/文档/_v_images/20191129085845536_1773068036.png -------------------------------------------------------------------------------- /doc/文档/_v_images/20191129090828768_1466275755.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xavieryang007/think-swoole-demo/HEAD/doc/文档/_v_images/20191129090828768_1466275755.png -------------------------------------------------------------------------------- /doc/文档/_v_images/20191129091042505_1321764960.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xavieryang007/think-swoole-demo/HEAD/doc/文档/_v_images/20191129091042505_1321764960.png -------------------------------------------------------------------------------- /doc/文档/_v_images/20191129091304527_1332838152.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xavieryang007/think-swoole-demo/HEAD/doc/文档/_v_images/20191129091304527_1332838152.png -------------------------------------------------------------------------------- /doc/文档/_v_images/20191129091607481_608898807.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xavieryang007/think-swoole-demo/HEAD/doc/文档/_v_images/20191129091607481_608898807.png -------------------------------------------------------------------------------- /doc/文档/_v_images/20191129153530033_1913103300.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xavieryang007/think-swoole-demo/HEAD/doc/文档/_v_images/20191129153530033_1913103300.png -------------------------------------------------------------------------------- /doc/文档/_v_images/20191129155150484_835116255.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xavieryang007/think-swoole-demo/HEAD/doc/文档/_v_images/20191129155150484_835116255.png -------------------------------------------------------------------------------- /doc/文档/_v_images/20191219154935625_769011361.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xavieryang007/think-swoole-demo/HEAD/doc/文档/_v_images/20191219154935625_769011361.png -------------------------------------------------------------------------------- /doc/文档/_v_images/20191219160055082_1217356681.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xavieryang007/think-swoole-demo/HEAD/doc/文档/_v_images/20191219160055082_1217356681.png -------------------------------------------------------------------------------- /doc/文档/_v_images/20191219161935069_1037032598.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xavieryang007/think-swoole-demo/HEAD/doc/文档/_v_images/20191219161935069_1037032598.png -------------------------------------------------------------------------------- /doc/文档/_v_images/20191220101654670_401390035.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xavieryang007/think-swoole-demo/HEAD/doc/文档/_v_images/20191220101654670_401390035.png -------------------------------------------------------------------------------- /src/.example.env: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xavieryang007/think-swoole-demo/HEAD/src/.example.env -------------------------------------------------------------------------------- /src/.gitignore: -------------------------------------------------------------------------------- 1 | /.idea 2 | /.vscode 3 | *.log 4 | .env -------------------------------------------------------------------------------- /src/.travis.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xavieryang007/think-swoole-demo/HEAD/src/.travis.yml -------------------------------------------------------------------------------- /src/LICENSE.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xavieryang007/think-swoole-demo/HEAD/src/LICENSE.txt -------------------------------------------------------------------------------- /src/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xavieryang007/think-swoole-demo/HEAD/src/README.md -------------------------------------------------------------------------------- /src/app/.htaccess: -------------------------------------------------------------------------------- 1 | deny from all -------------------------------------------------------------------------------- /src/app/BaseController.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xavieryang007/think-swoole-demo/HEAD/src/app/BaseController.php -------------------------------------------------------------------------------- /src/app/ExceptionHandle.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xavieryang007/think-swoole-demo/HEAD/src/app/ExceptionHandle.php -------------------------------------------------------------------------------- /src/app/Request.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xavieryang007/think-swoole-demo/HEAD/src/app/Request.php -------------------------------------------------------------------------------- /src/app/common.php: -------------------------------------------------------------------------------- 1 |