[{"title":"( 93 个子文件 197KB ) Clean-Architecture-Symfony:[WIP]我第一次尝试用Symfony在PHP中实现Clean Architecture-源码","children":[{"title":"Clean-Architecture-Symfony-master","children":[{"title":".env <span style='color:#111;'> 1.94KB </span>","children":null,"spread":false},{"title":"public","children":[{"title":"index.php <span style='color:#111;'> 862B </span>","children":null,"spread":false}],"spread":true},{"title":"yarn.lock <span style='color:#111;'> 308.62KB </span>","children":null,"spread":false},{"title":"webpack.config.js <span style='color:#111;'> 1.81KB </span>","children":null,"spread":false},{"title":"src","children":[{"title":"Domain","children":[{"title":"Id.php <span style='color:#111;'> 700B </span>","children":null,"spread":false},{"title":"RaisesEvents.php <span style='color:#111;'> 329B </span>","children":null,"spread":false},{"title":"User","children":[{"title":"Command","children":[{"title":"Register.php <span style='color:#111;'> 807B </span>","children":null,"spread":false}],"spread":true},{"title":"ValueObject","children":[{"title":"UserId.php <span style='color:#111;'> 101B </span>","children":null,"spread":false},{"title":"Name.php <span style='color:#111;'> 601B </span>","children":null,"spread":false},{"title":"Email.php <span style='color:#111;'> 443B </span>","children":null,"spread":false}],"spread":true},{"title":"Contract","children":[{"title":"PasswordEncoderInterface.php <span style='color:#111;'> 196B </span>","children":null,"spread":false}],"spread":true},{"title":"Entity","children":[{"title":"User.php <span style='color:#111;'> 1.57KB </span>","children":null,"spread":false}],"spread":true},{"title":"Repository","children":[{"title":"UserRepositoryInterface.php <span style='color:#111;'> 245B </span>","children":null,"spread":false}],"spread":false},{"title":"Event","children":[{"title":"Registered.php <span style='color:#111;'> 311B </span>","children":null,"spread":false}],"spread":false}],"spread":true},{"title":"Time.php <span style='color:#111;'> 202B </span>","children":null,"spread":false}],"spread":true},{"title":"Application","children":[{"title":"UseCase","children":[{"title":"User","children":[{"title":"Register","children":[{"title":"RegisterResponse.php <span style='color:#111;'> 127B </span>","children":null,"spread":false},{"title":"RegisterRequest.php <span style='color:#111;'> 180B </span>","children":null,"spread":false},{"title":"RegisterUseCase.php <span style='color:#111;'> 792B </span>","children":null,"spread":false},{"title":"RegisterPresenterInterface.php <span style='color:#111;'> 155B </span>","children":null,"spread":false}],"spread":true}],"spread":true}],"spread":true},{"title":"QueryHandler","children":[{"title":".gitignore <span style='color:#111;'> 0B </span>","children":null,"spread":false}],"spread":true},{"title":"Contract","children":[{"title":"CommandBusInterface.php <span style='color:#111;'> 130B </span>","children":null,"spread":false},{"title":"QueryBusInterface.php <span style='color:#111;'> 183B </span>","children":null,"spread":false},{"title":"EventBusInterface.php <span style='color:#111;'> 182B </span>","children":null,"spread":false}],"spread":true},{"title":"EventHandler","children":[{"title":"User","children":[{"title":"RegisteredHandler.php <span style='color:#111;'> 626B </span>","children":null,"spread":false},{"title":"SendRegistrationConfirmationNotificationInterface.php <span style='color:#111;'> 204B </span>","children":null,"spread":false}],"spread":true}],"spread":true},{"title":"CommandHandler","children":[{"title":"User","children":[{"title":"RegisterHandler.php <span style='color:#111;'> 1.01KB </span>","children":null,"spread":false}],"spread":true}],"spread":true}],"spread":true},{"title":"Presentation","children":[{"title":"Web","children":[{"title":"User","children":[{"title":"Register","children":[{"title":"RegisterWebViewModel.php <span style='color:#111;'> 128B </span>","children":null,"spread":false},{"title":"RegisterWebPresenter.php <span style='color:#111;'> 483B </span>","children":null,"spread":false}],"spread":true}],"spread":true}],"spread":true}],"spread":true},{"title":"Infrastructure","children":[{"title":"Notification","children":[{"title":"User","children":[{"title":"SendRegistrationConfirmationEmail.php <span style='color:#111;'> 1.07KB </span>","children":null,"spread":false}],"spread":true}],"spread":true},{"title":"Symfony","children":[{"title":"Security","children":[{"title":"PasswordEncoder.php <span style='color:#111;'> 707B </span>","children":null,"spread":false},{"title":"User.php <span style='color:#111;'> 715B </span>","children":null,"spread":false},{"title":"FormLoginAuthenticator.php <span style='color:#111;'> 2.74KB </span>","children":null,"spread":false},{"title":"UserProvider.php <span style='color:#111;'> 1.14KB </span>","children":null,"spread":false}],"spread":true},{"title":"MessageBus","children":[{"title":"CommandBus.php <span style='color:#111;'> 494B </span>","children":null,"spread":false},{"title":"EventBus.php <span style='color:#111;'> 754B </span>","children":null,"spread":false},{"title":"QueryBus.php <span style='color:#111;'> 669B </span>","children":null,"spread":false}],"spread":true},{"title":"Mailer","children":[{"title":"MailerInterface.php <span style='color:#111;'> 189B </span>","children":null,"spread":false},{"title":"Mailer.php <span style='color:#111;'> 840B </span>","children":null,"spread":false},{"title":"EmailInterface.php <span style='color:#111;'> 525B </span>","children":null,"spread":false},{"title":"Email.php <span style='color:#111;'> 1.34KB </span>","children":null,"spread":false}],"spread":false},{"title":"Kernel.php <span style='color:#111;'> 1.43KB </span>","children":null,"spread":false},{"title":"Action","children":[{"title":"User","children":[{"title":"RegisterAction.php <span style='color:#111;'> 1.46KB </span>","children":null,"spread":false},{"title":"LogoutAction.php <span style='color:#111;'> 136B </span>","children":null,"spread":false}],"spread":false}],"spread":false},{"title":"DependencyInjection","children":[{"title":"Compiler","children":[{"title":"EntityRepositoryCompilerPass.php <span style='color:#111;'> 1.01KB </span>","children":null,"spread":false}],"spread":false}],"spread":false},{"title":"Form","children":[{"title":"FormRegistry.php <span style='color:#111;'> 716B </span>","children":null,"spread":false},{"title":"Type","children":[{"title":"User","children":[{"title":"RegisterType.php <span style='color:#111;'> 1.19KB </span>","children":null,"spread":false}],"spread":false}],"spread":false}],"spread":false},{"title":"View","children":[{"title":"User","children":[{"title":"RegisterView.php <span style='color:#111;'> 1.02KB </span>","children":null,"spread":false}],"spread":false}],"spread":false}],"spread":true},{"title":"Persistence","children":[{"title":"Doctrine","children":[{"title":"Mapping","children":[{"title":"User.ValueObject.Email.orm.xml <span style='color:#111;'> 480B </span>","children":null,"spread":false},{"title":"User.ValueObject.Name.orm.xml <span style='color:#111;'> 535B </span>","children":null,"spread":false},{"title":"User.Entity.User.orm.xml <span style='color:#111;'> 807B </span>","children":null,"spread":false}],"spread":false},{"title":"Repository","children":[{"title":"UserRepository.php <span style='color:#111;'> 922B </span>","children":null,"spread":false}],"spread":false},{"title":"Type","children":[{"title":"UserIdType.php <span style='color:#111;'> 317B </span>","children":null,"spread":false},{"title":"UuidType.php <span style='color:#111;'> 1.34KB </span>","children":null,"spread":false}],"spread":false}],"spread":true},{"title":"Exception","children":[{"title":"UserNotFoundException.php <span style='color:#111;'> 315B </span>","children":null,"spread":false},{"title":"EntityNotFoundException.php <span style='color:#111;'> 137B </span>","children":null,"spread":false}],"spread":false}],"spread":true}],"spread":true}],"spread":true},{"title":"config","children":[{"title":"services.php <span style='color:#111;'> 2.67KB </span>","children":null,"spread":false},{"title":"bundles.php <span style='color:#111;'> 639B </span>","children":null,"spread":false},{"title":"packages","children":[{"title":"security.yaml <span style='color:#111;'> 607B </span>","children":null,"spread":false},{"title":"assets.yaml <span style='color:#111;'> 101B </span>","children":null,"spread":false},{"title":"twig.yaml <span style='color:#111;'> 57B </span>","children":null,"spread":false},{"title":"messenger.yaml <span style='color:#111;'> 998B </span>","children":null,"spread":false},{"title":"prod","children":[{"title":"doctrine.yaml <span style='color:#111;'> 545B </span>","children":null,"spread":false},{"title":"routing.yaml <span style='color:#111;'> 57B </span>","children":null,"spread":false},{"title":"webpack_encore.yaml <span style='color:#111;'> 154B </span>","children":null,"spread":false}],"spread":false},{"title":"mailer.yaml <span style='color:#111;'> 124B </span>","children":null,"spread":false},{"title":"framework.yaml <span style='color:#111;'> 526B </span>","children":null,"spread":false},{"title":"test","children":[{"title":"twig.yaml <span style='color:#111;'> 33B </span>","children":null,"spread":false},{"title":"framework.yaml <span style='color:#111;'> 85B </span>","children":null,"spread":false},{"title":"web_profiler.yaml <span style='color:#111;'> 109B </span>","children":null,"spread":false},{"title":"webpack_encore.yaml <span style='color:#111;'> 41B </span>","children":null,"spread":false}],"spread":false},{"title":"doctrine.yaml <span style='color:#111;'> 571B </span>","children":null,"spread":false},{"title":"routing.yaml <span style='color:#111;'> 254B </span>","children":null,"spread":false},{"title":"webpack_encore.yaml <span style='color:#111;'> 1.06KB </span>","children":null,"spread":false},{"title":"cache.yaml <span style='color:#111;'> 687B </span>","children":null,"spread":false},{"title":"dev","children":[{"title":"web_profiler.yaml <span style='color:#111;'> 116B </span>","children":null,"spread":false}],"spread":false}],"spread":false},{"title":"routes.php <span style='color:#111;'> 465B </span>","children":null,"spread":false},{"title":"routes","children":[{"title":"dev","children":[{"title":"framework.yaml <span style='color:#111;'> 98B </span>","children":null,"spread":false},{"title":"web_profiler.yaml <span style='color:#111;'> 224B </span>","children":null,"spread":false}],"spread":true}],"spread":true}],"spread":true},{"title":"LICENSE <span style='color:#111;'> 1.04KB </span>","children":null,"spread":false},{"title":"assets","children":[{"title":"scss","children":[{"title":"_variables.scss <span style='color:#111;'> 0B </span>","children":null,"spread":false},{"title":"main.scss <span style='color:#111;'> 1.25KB </span>","children":null,"spread":false}],"spread":true},{"title":"js","children":[{"title":"app.js <span style='color:#111;'> 28B </span>","children":null,"spread":false}],"spread":true}],"spread":true},{"title":"composer.lock <span style='color:#111;'> 227.60KB </span>","children":null,"spread":false},{"title":"README.md <span style='color:#111;'> 188B </span>","children":null,"spread":false},{"title":"symfony.lock <span style='color:#111;'> 10.08KB </span>","children":null,"spread":false},{"title":".php-version <span style='color:#111;'> 4B </span>","children":null,"spread":false},{"title":"templates","children":[{"title":"app","children":[{"title":"emails","children":[{"title":"user","children":[{"title":"confirm_registration.html.twig <span style='color:#111;'> 24B </span>","children":null,"spread":false}],"spread":false}],"spread":false},{"title":"layout.html.twig <span style='color:#111;'> 554B </span>","children":null,"spread":false},{"title":"actions","children":[{"title":"user","children":[{"title":"register.html.twig <span style='color:#111;'> 1.73KB </span>","children":null,"spread":false}],"spread":false}],"spread":false}],"spread":false}],"spread":true},{"title":".gitignore <span style='color:#111;'> 327B </span>","children":null,"spread":false},{"title":"bin","children":[{"title":"console <span style='color:#111;'> 1.29KB </span>","children":null,"spread":false}],"spread":false},{"title":"package.json <span style='color:#111;'> 546B </span>","children":null,"spread":false},{"title":"composer.json <span style='color:#111;'> 1.94KB </span>","children":null,"spread":false}],"spread":false}],"spread":true}]