# PHP interface abstract trait Laravel 原始碼閱讀筆記 ###### tags: `PHP` `Laravel` ## 在Laravel中 * interface 大約114個 * ![](https://i.imgur.com/0WXLXxg.png) * abstract 大約32個 * ![](https://i.imgur.com/zkECNIj.png) * trait 大約102個 * ![](https://i.imgur.com/Jy79jEn.png) ## interface * Illuminate\Auth\Passwords\TokenRepositoryInterface.php * [官方API頁面](https://laravel.com/api/7.x/Illuminate/Auth/Passwords/TokenRepositoryInterface.html) * Illuminate\Console\Scheduling\CacheAware.php * Illuminate\Console\Scheduling\EventMutex.php * Illuminate\Console\Scheduling\SchedulingMutex.php * Illuminate\Contracts\Auth\Authenticatable.php * Illuminate\Contracts\Auth\CanResetPassword.php * Illuminate\Contracts\Auth\Factory.php * Illuminate\Contracts\Auth\Guard.php * Illuminate\Contracts\Auth\MustVerifyEmail.php * Illuminate\Contracts\Auth\PasswordBroker.php * Illuminate\Contracts\Auth\PasswordBrokerFactory.php * Illuminate\Contracts\Auth\StatefulGuard.php * Illuminate\Contracts\Auth\SupportsBasicAuth.php * Illuminate\Contracts\Auth\UserProvider.php * Illuminate\Contracts\Auth\Access\Authorizable.php * Illuminate\Contracts\Auth\Access\Gate.php * Illuminate\Contracts\Auth\Middleware\AuthenticatesRequests.php * Illuminate\Contracts\Broadcasting\Broadcaster.php * Illuminate\Contracts\Broadcasting\Factory.php * Illuminate\Contracts\Broadcasting\ShouldBroadcast.php * Illuminate\Contracts\Broadcasting\ShouldBroadcastNow.php * Illuminate\Contracts\Bus\Dispatcher.php * Illuminate\Contracts\Bus\QueueingDispatcher.php * Illuminate\Contracts\Cache\Factory.php * Illuminate\Contracts\Cache\Lock.php * Illuminate\Contracts\Cache\LockProvider.php * Illuminate\Contracts\Cache\Repository.php * Illuminate\Contracts\Cache\Store.php * Illuminate\Contracts\Config\Repository.php * Illuminate\Contracts\Console\Application.php * Illuminate\Contracts\Console\Kernel.php * Illuminate\Contracts\Container\Container.php * Illuminate\Contracts\Container\ContextualBindingBuilder.php * Illuminate\Contracts\Cookie\Factory.php * Illuminate\Contracts\Cookie\QueueingFactory.php * Illuminate\Contracts\Database\Eloquent\Castable.php * Illuminate\Contracts\Database\Eloquent\CastsAttributes.php * Illuminate\Contracts\Database\Eloquent\CastsInboundAttributes.php * Illuminate\Contracts\Database\Events\MigrationEvent.php * Illuminate\Contracts\Debug\ExceptionHandler.php * Illuminate\Contracts\Encryption\Encrypter.php * Illuminate\Contracts\Events\Dispatcher.php * Illuminate\Contracts\Filesystem\Cloud.php * Illuminate\Contracts\Filesystem\Factory.php * Illuminate\Contracts\Filesystem\Filesystem.php * Illuminate\Contracts\Foundation\Application.php * Illuminate\Contracts\Foundation\CachesConfiguration.php * Illuminate\Contracts\Foundation\CachesRoutes.php * Illuminate\Contracts\Hashing\Hasher.php * Illuminate\Contracts\Http\Kernel.php * Illuminate\Contracts\Mail\Factory.php * Illuminate\Contracts\Mail\Mailable.php * Illuminate\Contracts\Mail\Mailer.php * Illuminate\Contracts\Mail\MailQueue.php * Illuminate\Contracts\Notifications\Dispatcher.php * Illuminate\Contracts\Notifications\Factory.php * Illuminate\Contracts\Pagination\LengthAwarePaginator.php * Illuminate\Contracts\Pagination\Paginator.php * Illuminate\Contracts\Pipeline\Hub.php * Illuminate\Contracts\Pipeline\Pipeline.php * Illuminate\Contracts\Queue\EntityResolver.php * Illuminate\Contracts\Queue\Factory.php * Illuminate\Contracts\Queue\Job.php * Illuminate\Contracts\Queue\Monitor.php * Illuminate\Contracts\Queue\Queue.php * Illuminate\Contracts\Queue\QueueableCollection.php * Illuminate\Contracts\Queue\QueueableEntity.php * Illuminate\Contracts\Queue\ShouldQueue.php * Illuminate\Contracts\Redis\Connection.php * Illuminate\Contracts\Redis\Connector.php * Illuminate\Contracts\Redis\Factory.php * Illuminate\Contracts\Routing\BindingRegistrar.php * Illuminate\Contracts\Routing\Registrar.php * Illuminate\Contracts\Routing\ResponseFactory.php * Illuminate\Contracts\Routing\UrlGenerator.php * Illuminate\Contracts\Routing\UrlRoutable.php * Illuminate\Contracts\Session\Session.php * Illuminate\Contracts\Support\Arrayable.php * Illuminate\Contracts\Support\DeferrableProvider.php * Illuminate\Contracts\Support\DeferringDisplayableValue.php * Illuminate\Contracts\Support\Htmlable.php * Illuminate\Contracts\Support\Jsonable.php * Illuminate\Contracts\Support\MessageBag.php * Illuminate\Contracts\Support\MessageProvider.php * Illuminate\Contracts\Support\Renderable.php * Illuminate\Contracts\Support\Responsable.php * Illuminate\Contracts\Translation\HasLocalePreference.php * Illuminate\Contracts\Translation\Loader.php * Illuminate\Contracts\Translation\Translator.php * Illuminate\Contracts\Validation\Factory.php * Illuminate\Contracts\Validation\ImplicitRule.php * Illuminate\Contracts\Validation\Rule.php * Illuminate\Contracts\Validation\ValidatesWhenResolved.php * Illuminate\Contracts\Validation\Validator.php * Illuminate\Contracts\View\Engine.php * Illuminate\Contracts\View\Factory.php * Illuminate\Contracts\View\View.php * Illuminate\Database\ConnectionInterface.php * Illuminate\Database\ConnectionResolverInterface.php * Illuminate\Database\Connectors\ConnectorInterface.php * Illuminate\Database\Eloquent\Scope.php * Illuminate\Database\Migrations\MigrationRepositoryInterface.php * Illuminate\Http\Resources\PotentiallyMissing.php * Illuminate\Queue\Connectors\ConnectorInterface.php * Illuminate\Queue\Failed\FailedJobProviderInterface.php * Illuminate\Routing\RouteCollectionInterface.php * Illuminate\Routing\Contracts\ControllerDispatcher.php * Illuminate\Routing\Matching\ValidatorInterface.php * Illuminate\Session\ExistenceAwareInterface.php * Illuminate\Support\Enumerable.php * Illuminate\Validation\DatabasePresenceVerifierInterface.php * Illuminate\Validation\PresenceVerifierInterface.php * Illuminate\View\ViewFinderInterface.php * Illuminate\View\Compilers\CompilerInterface.php ## abstract * Illuminate\Broadcasting\Broadcasters\Broadcaster.php * Illuminate\Cache\Lock.php * Illuminate\Cache\TaggableStore.php * Illuminate\Cache\Events\CacheEvent.php * Illuminate\Console\GeneratorCommand.php * Illuminate\Database\Grammar.php * Illuminate\Database\Seeder.php * Illuminate\Database\Eloquent\Model.php * Illuminate\Database\Eloquent\Relations\HasOneOrMany.php * Illuminate\Database\Eloquent\Relations\MorphOneOrMany.php * Illuminate\Database\Eloquent\Relations\Relation.php * Illuminate\Database\Events\ConnectionEvent.php * Illuminate\Database\Events\MigrationEvent.php * Illuminate\Database\Migrations\Migration.php * Illuminate\Database\Schema\Grammars\Grammar.php * Illuminate\Foundation\Testing\TestCase.php * Illuminate\Hashing\AbstractHasher.php * Illuminate\Http\Middleware\TrustHosts.php * Illuminate\Mail\Transport\Transport.php * Illuminate\Pagination\AbstractPaginator.php * Illuminate\Queue\Queue.php * Illuminate\Queue\Jobs\Job.php * Illuminate\Redis\Connections\Connection.php * Illuminate\Routing\AbstractRouteCollection.php * Illuminate\Routing\Controller.php * Illuminate\Support\Manager.php * Illuminate\Support\ServiceProvider.php * Illuminate\Support\Facades\Facade.php * Illuminate\Testing\Assert.php * Illuminate\View\Component.php * Illuminate\View\Compilers\Compiler.php * Illuminate\View\Engines\Engine.php ## trait * Illuminate\Auth\Authenticatable.php * Illuminate\Auth\CreatesUserProviders.php * Illuminate\Auth\GuardHelpers.php * Illuminate\Auth\MustVerifyEmail.php * Illuminate\Auth\Access\HandlesAuthorization.php * Illuminate\Auth\Passwords\CanResetPassword.php * Illuminate\Broadcasting\InteractsWithSockets.php * Illuminate\Broadcasting\Broadcasters\UsePusherChannelConventions.php * Illuminate\Bus\Queueable.php * Illuminate\Cache\RetrievesMultipleKeys.php * Illuminate\Console\ConfirmableTrait.php * Illuminate\Console\Concerns\CallsCommands.php * Illuminate\Console\Concerns\HasParameters.php * Illuminate\Console\Concerns\InteractsWithIO.php * Illuminate\Console\Scheduling\ManagesFrequencies.php * Illuminate\Database\DetectsConcurrencyErrors.php * Illuminate\Database\DetectsLostConnections.php * Illuminate\Database\Concerns\BuildsQueries.php * Illuminate\Database\Concerns\ManagesTransactions.php * Illuminate\Database\Eloquent\SoftDeletes.php * Illuminate\Database\Eloquent\Concerns\GuardsAttributes.php * Illuminate\Database\Eloquent\Concerns\HasAttributes.php * Illuminate\Database\Eloquent\Concerns\HasEvents.php * Illuminate\Database\Eloquent\Concerns\HasGlobalScopes.php * Illuminate\Database\Eloquent\Concerns\HasRelationships.php * Illuminate\Database\Eloquent\Concerns\HasTimestamps.php * Illuminate\Database\Eloquent\Concerns\HidesAttributes.php * Illuminate\Database\Eloquent\Concerns\QueriesRelationships.php * Illuminate\Database\Eloquent\Relations\Concerns\AsPivot.php * Illuminate\Database\Eloquent\Relations\Concerns\InteractsWithPivotTable.php * Illuminate\Database\Eloquent\Relations\Concerns\SupportsDefaultModels.php * Illuminate\Foundation\Auth\Access\Authorizable.php * Illuminate\Foundation\Auth\Access\AuthorizesRequests.php * Illuminate\Foundation\Bus\Dispatchable.php * Illuminate\Foundation\Bus\DispatchesJobs.php * Illuminate\Foundation\Events\Dispatchable.php * Illuminate\Foundation\Testing\DatabaseMigrations.php * Illuminate\Foundation\Testing\DatabaseTransactions.php * Illuminate\Foundation\Testing\RefreshDatabase.php * Illuminate\Foundation\Testing\WithFaker.php * Illuminate\Foundation\Testing\WithoutEvents.php * Illuminate\Foundation\Testing\WithoutMiddleware.php * Illuminate\Foundation\Testing\Concerns\InteractsWithAuthentication.php * Illuminate\Foundation\Testing\Concerns\InteractsWithConsole.php * Illuminate\Foundation\Testing\Concerns\InteractsWithContainer.php * Illuminate\Foundation\Testing\Concerns\InteractsWithDatabase.php * Illuminate\Foundation\Testing\Concerns\InteractsWithExceptionHandling.php * Illuminate\Foundation\Testing\Concerns\InteractsWithRedis.php * Illuminate\Foundation\Testing\Concerns\InteractsWithSession.php * Illuminate\Foundation\Testing\Concerns\MakesHttpRequests.php * Illuminate\Foundation\Testing\Concerns\MocksApplicationServices.php * Illuminate\Foundation\Validation\ValidatesRequests.php * Illuminate\Http\FileHelpers.php * Illuminate\Http\ResponseTrait.php * Illuminate\Http\Concerns\InteractsWithContentTypes.php * Illuminate\Http\Concerns\InteractsWithFlashData.php * Illuminate\Http\Concerns\InteractsWithInput.php * Illuminate\Http\Resources\CollectsResources.php * Illuminate\Http\Resources\ConditionallyLoadsAttributes.php * Illuminate\Http\Resources\DelegatesToResource.php * Illuminate\Log\ParsesLogConfiguration.php * Illuminate\Notifications\HasDatabaseNotifications.php * Illuminate\Notifications\Notifiable.php * Illuminate\Notifications\RoutesNotifications.php * Illuminate\Queue\InteractsWithQueue.php * Illuminate\Queue\SerializesAndRestoresModelIdentifiers.php * Illuminate\Queue\SerializesModels.php * Illuminate\Routing\RouteDependencyResolverTrait.php * Illuminate\Support\InteractsWithTime.php * Illuminate\Support\Traits\CapsuleManagerTrait.php * Illuminate\Support\Traits\EnumeratesValues.php * Illuminate\Support\Traits\ForwardsCalls.php * Illuminate\Support\Traits\Localizable.php * Illuminate\Support\Traits\Macroable.php * Illuminate\Support\Traits\ReflectsClosures.php * Illuminate\Support\Traits\Tappable.php * Illuminate\Validation\ValidatesWhenResolvedTrait.php * Illuminate\Validation\Concerns\FormatsMessages.php * Illuminate\Validation\Concerns\ReplacesAttributes.php * Illuminate\Validation\Concerns\ValidatesAttributes.php * Illuminate\Validation\Rules\DatabaseRule.php * Illuminate\View\Compilers\Concerns\CompilesAuthorizations.php * Illuminate\View\Compilers\Concerns\CompilesComments.php * Illuminate\View\Compilers\Concerns\CompilesComponents.php * Illuminate\View\Compilers\Concerns\CompilesConditionals.php * Illuminate\View\Compilers\Concerns\CompilesEchos.php * Illuminate\View\Compilers\Concerns\CompilesErrors.php * Illuminate\View\Compilers\Concerns\CompilesHelpers.php * Illuminate\View\Compilers\Concerns\CompilesIncludes.php * Illuminate\View\Compilers\Concerns\CompilesInjections.php * Illuminate\View\Compilers\Concerns\CompilesJson.php * Illuminate\View\Compilers\Concerns\CompilesLayouts.php * Illuminate\View\Compilers\Concerns\CompilesLoops.php * Illuminate\View\Compilers\Concerns\CompilesRawPhp.php * Illuminate\View\Compilers\Concerns\CompilesStacks.php * Illuminate\View\Compilers\Concerns\CompilesTranslations.php * Illuminate\View\Concerns\ManagesComponents.php * Illuminate\View\Concerns\ManagesEvents.php * Illuminate\View\Concerns\ManagesLayouts.php * Illuminate\View\Concerns\ManagesLoops.php * Illuminate\View\Concerns\ManagesStacks.php * Illuminate\View\Concerns\ManagesTranslations.php ![](https://i.imgur.com/rs22OXN.png)