Showing preview only (1,889K chars total). Download the full file or copy to clipboard to get everything.
Repository: octobercms/library
Branch: 4.x
Commit: 21e7461cfd49
Files: 555
Total size: 1.7 MB
Directory structure:
gitextract_egawjsam/
├── .gitattributes
├── .github/
│ └── workflows/
│ └── tests.yml
├── .gitignore
├── CREDITS.md
├── LICENSE.md
├── README.md
├── composer.json
├── contracts/
│ ├── Database/
│ │ ├── CurrencyableInterface.php
│ │ ├── MultisiteGroupInterface.php
│ │ ├── MultisiteInterface.php
│ │ ├── NestedSetInterface.php
│ │ ├── SoftDeleteInterface.php
│ │ ├── SortableInterface.php
│ │ ├── SortableRelationInterface.php
│ │ ├── TranslatableInterface.php
│ │ ├── TreeInterface.php
│ │ └── ValidationInterface.php
│ ├── Element/
│ │ ├── FilterElement.php
│ │ ├── FormElement.php
│ │ └── ListElement.php
│ ├── Support/
│ │ └── OctoberPackage.php
│ └── Twig/
│ ├── CallsAnyMethod.php
│ └── CallsMethods.php
├── globals/
│ ├── AjaxException.php
│ ├── App.php
│ ├── ApplicationException.php
│ ├── Arr.php
│ ├── Artisan.php
│ ├── Auth.php
│ ├── Backend.php
│ ├── BackendAuth.php
│ ├── BackendMenu.php
│ ├── BackendUi.php
│ ├── Block.php
│ ├── Broadcast.php
│ ├── Bus.php
│ ├── Cache.php
│ ├── Cms.php
│ ├── Config.php
│ ├── Cookie.php
│ ├── Crypt.php
│ ├── Currency.php
│ ├── Date.php
│ ├── Db.php
│ ├── DbDongle.php
│ ├── Event.php
│ ├── File.php
│ ├── Flash.php
│ ├── ForbiddenException.php
│ ├── Form.php
│ ├── Hash.php
│ ├── Html.php
│ ├── Http.php
│ ├── Ini.php
│ ├── Input.php
│ ├── Lang.php
│ ├── Log.php
│ ├── Mail.php
│ ├── Manifest.php
│ ├── Markdown.php
│ ├── Model.php
│ ├── NotFoundException.php
│ ├── Notification.php
│ ├── Password.php
│ ├── Queue.php
│ ├── Redirect.php
│ ├── Redis.php
│ ├── Request.php
│ ├── Resizer.php
│ ├── Response.php
│ ├── Route.php
│ ├── Schema.php
│ ├── Seeder.php
│ ├── Session.php
│ ├── Site.php
│ ├── Storage.php
│ ├── Str.php
│ ├── System.php
│ ├── SystemException.php
│ ├── Twig.php
│ ├── Ui.php
│ ├── Url.php
│ ├── ValidationException.php
│ ├── Validator.php
│ ├── View.php
│ ├── Vite.php
│ └── Yaml.php
├── init/
│ ├── autoloader.php
│ ├── functions.php
│ ├── init.php
│ └── polyfills.php
├── init.php
├── phpbench.json
├── phpcs.xml
├── phpunit.xml
├── src/
│ ├── Assetic/
│ │ ├── Asset/
│ │ │ ├── AssetCache.php
│ │ │ ├── AssetCollection.php
│ │ │ ├── AssetCollectionInterface.php
│ │ │ ├── AssetInterface.php
│ │ │ ├── BaseAsset.php
│ │ │ ├── FileAsset.php
│ │ │ ├── GlobAsset.php
│ │ │ ├── HttpAsset.php
│ │ │ ├── Iterator/
│ │ │ │ ├── AssetCollectionFilterIterator.php
│ │ │ │ └── AssetCollectionIterator.php
│ │ │ └── StringAsset.php
│ │ ├── AssetManager.php
│ │ ├── AssetWriter.php
│ │ ├── AsseticServiceProvider.php
│ │ ├── Cache/
│ │ │ ├── CacheInterface.php
│ │ │ └── FilesystemCache.php
│ │ ├── Combiner.php
│ │ ├── Factory/
│ │ │ └── AssetFactory.php
│ │ ├── Filter/
│ │ │ ├── BaseCssFilter.php
│ │ │ ├── CssImportFilter.php
│ │ │ ├── CssMinFilter.php
│ │ │ ├── CssRewriteFilter.php
│ │ │ ├── DependencyExtractorInterface.php
│ │ │ ├── FilterCollection.php
│ │ │ ├── FilterInterface.php
│ │ │ ├── HashableInterface.php
│ │ │ ├── JSMinFilter.php
│ │ │ ├── JSqueezeFilter.php
│ │ │ ├── JavascriptImporter.php
│ │ │ ├── LessCompiler.php
│ │ │ ├── LessphpFilter.php
│ │ │ ├── ScssCompiler.php
│ │ │ ├── ScssphpFilter.php
│ │ │ └── StylesheetMinify.php
│ │ ├── FilterManager.php
│ │ ├── README.md
│ │ ├── Traits/
│ │ │ └── HasDeepHasher.php
│ │ └── Util/
│ │ ├── CssUtils.php
│ │ ├── LessUtils.php
│ │ ├── SassUtils.php
│ │ └── VarUtils.php
│ ├── Auth/
│ │ ├── AuthException.php
│ │ ├── Concerns/
│ │ │ ├── HasGuard.php
│ │ │ ├── HasImpersonation.php
│ │ │ ├── HasProviderProxy.php
│ │ │ ├── HasSession.php
│ │ │ ├── HasStatefulGuard.php
│ │ │ ├── HasThrottle.php
│ │ │ └── HasUser.php
│ │ ├── Manager.php
│ │ ├── Migrations/
│ │ │ ├── 2013_10_01_000001_Db_Users.php
│ │ │ ├── 2013_10_01_000002_Db_Groups.php
│ │ │ ├── 2013_10_01_000003_Db_Users_Groups.php
│ │ │ ├── 2013_10_01_000004_Db_Preferences.php
│ │ │ ├── 2013_10_01_000005_Db_Throttle.php
│ │ │ └── 2017_10_01_000006_Db_Roles.php
│ │ └── Models/
│ │ ├── Group.php
│ │ ├── Preferences.php
│ │ ├── Role.php
│ │ ├── Throttle.php
│ │ └── User.php
│ ├── Composer/
│ │ ├── ClassLoader.php
│ │ ├── ComposerManager.php
│ │ ├── Concerns/
│ │ │ ├── HasAssertions.php
│ │ │ ├── HasAutoloader.php
│ │ │ ├── HasOctoberCommands.php
│ │ │ ├── HasOutput.php
│ │ │ └── HasRequirements.php
│ │ └── resources/
│ │ ├── file_get_contents.php
│ │ └── putenv.php
│ ├── Config/
│ │ ├── FileLoader.php
│ │ ├── README.md
│ │ └── Repository.php
│ ├── Database/
│ │ ├── Attach/
│ │ │ ├── File.php
│ │ │ └── FileException.php
│ │ ├── Builder.php
│ │ ├── Collection.php
│ │ ├── Concerns/
│ │ │ ├── HasAttributes.php
│ │ │ ├── HasEagerLoadAttachRelation.php
│ │ │ ├── HasEvents.php
│ │ │ ├── HasJsonable.php
│ │ │ ├── HasNicerPagination.php
│ │ │ ├── HasRelationships.php
│ │ │ └── HasReplication.php
│ │ ├── Connections/
│ │ │ ├── Connection.php
│ │ │ ├── ExtendsConnection.php
│ │ │ ├── MariaDbConnection.php
│ │ │ ├── MySqlConnection.php
│ │ │ ├── PostgresConnection.php
│ │ │ ├── SQLiteConnection.php
│ │ │ └── SqlServerConnection.php
│ │ ├── Connectors/
│ │ │ └── ConnectionFactory.php
│ │ ├── DatabaseServiceProvider.php
│ │ ├── Dongle.php
│ │ ├── ExpandoModel.php
│ │ ├── Factories/
│ │ │ ├── Factory.php
│ │ │ └── HasFactory.php
│ │ ├── Migrations/
│ │ │ ├── 2013_10_01_000001_Db_Deferred_Bindings.php
│ │ │ ├── 2013_10_01_000002_Db_Files.php
│ │ │ ├── 2015_10_01_000003_Db_Revisions.php
│ │ │ └── 2026_10_01_000004_Db_Translate_Attributes.php
│ │ ├── Model.php
│ │ ├── ModelBehavior.php
│ │ ├── ModelException.php
│ │ ├── Models/
│ │ │ ├── DeferredBinding.php
│ │ │ ├── Revision.php
│ │ │ └── TranslateAttribute.php
│ │ ├── MorphPivot.php
│ │ ├── NestedTreeScope.php
│ │ ├── Pivot.php
│ │ ├── QueryBuilder.php
│ │ ├── README.md
│ │ ├── Relations/
│ │ │ ├── AttachMany.php
│ │ │ ├── AttachOne.php
│ │ │ ├── AttachOneOrMany.php
│ │ │ ├── BelongsTo.php
│ │ │ ├── BelongsToMany.php
│ │ │ ├── DeferOneOrMany.php
│ │ │ ├── DefinedConstraints.php
│ │ │ ├── HasMany.php
│ │ │ ├── HasManyThrough.php
│ │ │ ├── HasOne.php
│ │ │ ├── HasOneOrMany.php
│ │ │ ├── HasOneThrough.php
│ │ │ ├── MorphMany.php
│ │ │ ├── MorphOne.php
│ │ │ ├── MorphOneOrMany.php
│ │ │ ├── MorphTo.php
│ │ │ ├── MorphToMany.php
│ │ │ └── Relation.php
│ │ ├── Replicator.php
│ │ ├── Schema/
│ │ │ └── Blueprint.php
│ │ ├── Scopes/
│ │ │ ├── MultisiteGroupScope.php
│ │ │ ├── MultisiteScope.php
│ │ │ ├── NestedTreeScope.php
│ │ │ ├── SoftDeleteScope.php
│ │ │ └── SortableScope.php
│ │ ├── SortableScope.php
│ │ ├── Traits/
│ │ │ ├── BaseIdentifier.php
│ │ │ ├── Defaultable.php
│ │ │ ├── DeferredBinding.php
│ │ │ ├── Encryptable.php
│ │ │ ├── Hashable.php
│ │ │ ├── Multisite.php
│ │ │ ├── MultisiteGroup.php
│ │ │ ├── NestedTree.php
│ │ │ ├── Nullable.php
│ │ │ ├── Purgeable.php
│ │ │ ├── Revisionable.php
│ │ │ ├── SimpleTree.php
│ │ │ ├── Sluggable.php
│ │ │ ├── SluggableTree.php
│ │ │ ├── SoftDelete.php
│ │ │ ├── Sortable.php
│ │ │ ├── SortableRelation.php
│ │ │ ├── Translatable.php
│ │ │ ├── UserFootprints.php
│ │ │ └── Validation.php
│ │ ├── TreeCollection.php
│ │ ├── Updater.php
│ │ └── Updates/
│ │ ├── Migration.php
│ │ └── Seeder.php
│ ├── Element/
│ │ ├── Dash/
│ │ │ └── ReportDefinition.php
│ │ ├── ElementBase.php
│ │ ├── ElementHolder.php
│ │ ├── Filter/
│ │ │ └── ScopeDefinition.php
│ │ ├── Form/
│ │ │ ├── FieldDefinition.php
│ │ │ └── FieldsetDefinition.php
│ │ ├── Lists/
│ │ │ └── ColumnDefinition.php
│ │ ├── Navigation/
│ │ │ └── ItemDefinition.php
│ │ └── OptionDefinition.php
│ ├── Events/
│ │ ├── Dispatcher.php
│ │ ├── EventServiceProvider.php
│ │ ├── FakeDispatcher.php
│ │ └── PriorityDispatcher.php
│ ├── Exception/
│ │ ├── AjaxException.php
│ │ ├── ApplicationException.php
│ │ ├── ErrorHandler.php
│ │ ├── ExceptionBase.php
│ │ ├── ForbiddenException.php
│ │ ├── NotFoundException.php
│ │ ├── SystemException.php
│ │ └── ValidationException.php
│ ├── Extension/
│ │ ├── Container.php
│ │ ├── Extendable.php
│ │ ├── ExtendableTrait.php
│ │ ├── ExtensionBase.php
│ │ ├── ExtensionTrait.php
│ │ └── README.md
│ ├── Filesystem/
│ │ ├── Definitions.php
│ │ ├── Filesystem.php
│ │ ├── FilesystemServiceProvider.php
│ │ ├── README.md
│ │ └── Zip.php
│ ├── Flash/
│ │ ├── FlashBag.php
│ │ └── FlashServiceProvider.php
│ ├── Foundation/
│ │ ├── Application.php
│ │ ├── Bootstrap/
│ │ │ ├── HandleExceptions.php
│ │ │ ├── LoadConfiguration.php
│ │ │ └── RegisterOctober.php
│ │ ├── Configuration/
│ │ │ └── ApplicationBuilder.php
│ │ ├── Console/
│ │ │ ├── ClearCompiledCommand.php
│ │ │ ├── Kernel.php
│ │ │ ├── ProjectSetCommand.php
│ │ │ ├── RouteCacheCommand.php
│ │ │ ├── RouteListCommand.php
│ │ │ └── ServeCommand.php
│ │ ├── Exception/
│ │ │ └── Handler.php
│ │ ├── Http/
│ │ │ ├── Kernel.php
│ │ │ └── Middleware/
│ │ │ ├── CheckForMaintenanceMode.php
│ │ │ └── EncryptCookies.php
│ │ ├── Providers/
│ │ │ ├── AppServiceProvider.php
│ │ │ ├── ArtisanServiceProvider.php
│ │ │ ├── ConsoleSupportServiceProvider.php
│ │ │ ├── CoreServiceProvider.php
│ │ │ ├── DateServiceProvider.php
│ │ │ ├── ExecutionContextProvider.php
│ │ │ └── LogServiceProvider.php
│ │ └── resources/
│ │ └── server.php
│ ├── Halcyon/
│ │ ├── Builder.php
│ │ ├── Collection.php
│ │ ├── Concerns/
│ │ │ └── HasEvents.php
│ │ ├── Datasource/
│ │ │ ├── AutoDatasource.php
│ │ │ ├── Datasource.php
│ │ │ ├── DatasourceInterface.php
│ │ │ ├── DbDatasource.php
│ │ │ ├── FileDatasource.php
│ │ │ ├── Resolver.php
│ │ │ └── ResolverInterface.php
│ │ ├── Exception/
│ │ │ ├── CreateDirectoryException.php
│ │ │ ├── CreateFileException.php
│ │ │ ├── DeleteFileException.php
│ │ │ ├── FileExistsException.php
│ │ │ ├── InvalidDirectoryNameException.php
│ │ │ ├── InvalidExtensionException.php
│ │ │ ├── InvalidFileNameException.php
│ │ │ ├── MissingFileNameException.php
│ │ │ └── ModelException.php
│ │ ├── HalcyonServiceProvider.php
│ │ ├── Migrations/
│ │ │ └── 2021_10_01_000001_Db_Templates.php
│ │ ├── Model.php
│ │ ├── Processors/
│ │ │ ├── Processor.php
│ │ │ └── SectionParser.php
│ │ ├── README.md
│ │ └── Traits/
│ │ └── Validation.php
│ ├── Html/
│ │ ├── BlockBuilder.php
│ │ ├── FormBuilder.php
│ │ ├── Helper.php
│ │ ├── HtmlBuilder.php
│ │ ├── HtmlServiceProvider.php
│ │ ├── README.md
│ │ ├── UrlMixin.php
│ │ └── UrlServiceProvider.php
│ ├── Installer/
│ │ ├── Console/
│ │ │ ├── OctoberBuild.php
│ │ │ └── OctoberInstall.php
│ │ ├── GatewayClient.php
│ │ ├── InstallEventHandler.php
│ │ ├── InstallManager.php
│ │ └── Traits/
│ │ ├── SetupBuilder.php
│ │ └── SetupHelper.php
│ ├── Mail/
│ │ ├── FakeMailer.php
│ │ ├── MailManager.php
│ │ ├── MailParser.php
│ │ ├── MailServiceProvider.php
│ │ ├── Mailable.php
│ │ └── Mailer.php
│ ├── Network/
│ │ └── Http.php
│ ├── Parse/
│ │ ├── Bracket.php
│ │ ├── ComponentParser.php
│ │ ├── Ini.php
│ │ ├── Markdown.php
│ │ ├── MarkdownData.php
│ │ ├── ParseServiceProvider.php
│ │ ├── Parsedown/
│ │ │ ├── Parsedown.php
│ │ │ └── ParsedownExtra.php
│ │ ├── Syntax/
│ │ │ ├── FieldParser.php
│ │ │ ├── Parser.php
│ │ │ ├── README.md
│ │ │ └── SyntaxModelTrait.php
│ │ ├── Twig.php
│ │ └── Yaml.php
│ ├── Resize/
│ │ ├── ResizeBuilder.php
│ │ ├── ResizeServiceProvider.php
│ │ └── Resizer.php
│ ├── Router/
│ │ ├── CoreRedirector.php
│ │ ├── CoreRouter.php
│ │ ├── Helper.php
│ │ ├── README.md
│ │ ├── Router.php
│ │ ├── RoutingServiceProvider.php
│ │ └── Rule.php
│ ├── Scaffold/
│ │ ├── Console/
│ │ │ ├── CreateCommand.php
│ │ │ ├── CreateComponent.php
│ │ │ ├── CreateContentField.php
│ │ │ ├── CreateController.php
│ │ │ ├── CreateFactory.php
│ │ │ ├── CreateFilterWidget.php
│ │ │ ├── CreateFormWidget.php
│ │ │ ├── CreateJob.php
│ │ │ ├── CreateMigration.php
│ │ │ ├── CreateModel.php
│ │ │ ├── CreatePlugin.php
│ │ │ ├── CreateReportWidget.php
│ │ │ ├── CreateSeeder.php
│ │ │ ├── CreateTest.php
│ │ │ ├── command/
│ │ │ │ └── command.stub
│ │ │ ├── component/
│ │ │ │ ├── component.stub
│ │ │ │ └── default.stub
│ │ │ ├── contentfield/
│ │ │ │ └── contentfield.stub
│ │ │ ├── controller/
│ │ │ │ ├── _list_toolbar.stub
│ │ │ │ ├── config_form.stub
│ │ │ │ ├── config_list.stub
│ │ │ │ ├── controller.stub
│ │ │ │ ├── create.stub
│ │ │ │ ├── create_design.stub
│ │ │ │ ├── index.stub
│ │ │ │ ├── preview.stub
│ │ │ │ ├── preview_design.stub
│ │ │ │ ├── update.stub
│ │ │ │ └── update_design.stub
│ │ │ ├── factory/
│ │ │ │ ├── factory.stub
│ │ │ │ └── factory_app.stub
│ │ │ ├── filterwidget/
│ │ │ │ ├── filterwidget.stub
│ │ │ │ ├── javascript.stub
│ │ │ │ ├── partial.stub
│ │ │ │ ├── partial_form.stub
│ │ │ │ └── stylesheet.stub
│ │ │ ├── formwidget/
│ │ │ │ ├── formwidget.stub
│ │ │ │ ├── javascript.stub
│ │ │ │ ├── partial.stub
│ │ │ │ └── stylesheet.stub
│ │ │ ├── job/
│ │ │ │ ├── job.queued.stub
│ │ │ │ └── job.stub
│ │ │ ├── migration/
│ │ │ │ ├── create_app_table.stub
│ │ │ │ ├── create_table.stub
│ │ │ │ ├── update_app_table.stub
│ │ │ │ └── update_table.stub
│ │ │ ├── model/
│ │ │ │ ├── columns.stub
│ │ │ │ ├── fields.stub
│ │ │ │ └── model.stub
│ │ │ ├── plugin/
│ │ │ │ ├── composer.stub
│ │ │ │ ├── plugin.stub
│ │ │ │ └── version.stub
│ │ │ ├── reportwidget/
│ │ │ │ ├── reportwidget.stub
│ │ │ │ └── widget.stub
│ │ │ ├── seeder/
│ │ │ │ ├── create_app_seeder.stub
│ │ │ │ └── create_seeder.stub
│ │ │ └── test/
│ │ │ ├── phpunit.app.stub
│ │ │ ├── phpunit.plugin.stub
│ │ │ └── test.stub
│ │ ├── GeneratorCommand.php
│ │ ├── GeneratorCommandBase.php
│ │ └── ScaffoldServiceProvider.php
│ ├── Support/
│ │ ├── Arr.php
│ │ ├── Collection.php
│ │ ├── Date.php
│ │ ├── Debug/
│ │ │ └── HtmlDumper.php
│ │ ├── DefaultProviders.php
│ │ ├── Facade.php
│ │ ├── Facades/
│ │ │ ├── Auth.php
│ │ │ ├── Block.php
│ │ │ ├── Config.php
│ │ │ ├── Currency.php
│ │ │ ├── DbDongle.php
│ │ │ ├── Event.php
│ │ │ ├── File.php
│ │ │ ├── Flash.php
│ │ │ ├── Form.php
│ │ │ ├── Html.php
│ │ │ ├── Ini.php
│ │ │ ├── Input.php
│ │ │ ├── Mail.php
│ │ │ ├── Markdown.php
│ │ │ ├── Resizer.php
│ │ │ ├── Schema.php
│ │ │ ├── Site.php
│ │ │ ├── Str.php
│ │ │ ├── Twig.php
│ │ │ ├── Url.php
│ │ │ ├── Validator.php
│ │ │ └── Yaml.php
│ │ ├── ModuleServiceProvider.php
│ │ ├── README.md
│ │ ├── SafeCollection.php
│ │ ├── ServiceProvider.php
│ │ ├── Singleton.php
│ │ ├── Str.php
│ │ └── Traits/
│ │ ├── Emitter.php
│ │ ├── KeyParser.php
│ │ └── Singleton.php
│ ├── Translation/
│ │ ├── FileLoader.php
│ │ ├── README.md
│ │ ├── TranslationServiceProvider.php
│ │ └── Translator.php
│ └── Validation/
│ ├── Concerns/
│ │ └── FormatsMessages.php
│ ├── Factory.php
│ ├── ValidationServiceProvider.php
│ └── Validator.php
└── tests/
├── Assetic/
│ ├── MockAsset.php
│ └── StylesheetMinifyTest.php
├── Benchmark/
│ ├── Database/
│ │ └── DatabaseBench.php
│ ├── GeneralBench.php
│ ├── Parse/
│ │ └── ParseBench.php
│ └── Router/
│ └── RouterBench.php
├── Database/
│ ├── DongleTest.php
│ ├── ModelAddersTest.php
│ ├── SortableTest.php
│ ├── Traits/
│ │ ├── EncryptableTest.php
│ │ ├── SluggableTest.php
│ │ └── ValidationTest.php
│ └── UpdaterTest.php
├── Events/
│ └── EventDispatcherTest.php
├── Extension/
│ ├── ExtendableTest.php
│ └── ExtensionTest.php
├── Halcyon/
│ ├── DatasourceResolverTest.php
│ ├── HalcyonModelTest.php
│ ├── SectionParserTest.php
│ └── ValidationTraitTest.php
├── Html/
│ ├── HtmlBuilderTest.php
│ └── HtmlHelperTest.php
├── Mail/
│ └── MailerTest.php
├── Network/
│ └── HttpTest.php
├── Parse/
│ ├── BracketTest.php
│ ├── IniTest.php
│ ├── MarkdownTest.php
│ ├── SyntaxFieldParserTest.php
│ └── SyntaxParserTest.php
├── Router/
│ ├── RouteTest.php
│ └── RouterHelperTest.php
├── Scaffold/
│ └── ScaffoldBaseTest.php
├── Support/
│ ├── CountableTest.php
│ ├── EmitterTest.php
│ └── HttpBuildQueryTest.php
├── TestCase.php
├── Translation/
│ └── TranslatorTest.php
├── fixtures/
│ ├── config/
│ │ └── sample-config.php
│ ├── database/
│ │ └── SampleClass.php
│ ├── halcyon/
│ │ ├── models/
│ │ │ ├── Content.php
│ │ │ ├── Menu.php
│ │ │ └── Page.php
│ │ └── themes/
│ │ ├── theme1/
│ │ │ ├── content/
│ │ │ │ └── welcome.htm
│ │ │ ├── menus/
│ │ │ │ └── mainmenu.htm
│ │ │ └── pages/
│ │ │ ├── about.htm
│ │ │ ├── home.htm
│ │ │ └── level1/
│ │ │ ├── level2/
│ │ │ │ └── level3/
│ │ │ │ └── level4/
│ │ │ │ └── level5/
│ │ │ │ ├── contact.htm
│ │ │ │ └── level6/
│ │ │ │ └── unknown.htm
│ │ │ └── team.htm
│ │ └── theme2/
│ │ └── pages/
│ │ └── home.htm
│ ├── lang/
│ │ └── en/
│ │ └── lang.php
│ └── parse/
│ ├── array.ini
│ ├── basic.ini
│ ├── comments-clean.ini
│ ├── comments.ini
│ ├── complex.ini
│ ├── multilines-value.ini
│ ├── object.ini
│ ├── sections.ini
│ ├── simple.ini
│ └── subsections.ini
└── phpunit.xml
================================================
FILE CONTENTS
================================================
================================================
FILE: .gitattributes
================================================
/tests export-ignore
/.github export-ignore
/phpcs.xml export-ignore
/phpunit.xml export-ignore
/phpbench.json export-ignore
================================================
FILE: .github/workflows/tests.yml
================================================
name: Tests
on:
push:
branches:
- 2.x
- 3.x
- 4.x
- develop
pull_request:
jobs:
phpUnitTests:
runs-on: ubuntu-latest
strategy:
max-parallel: 6
matrix:
phpVersions: ['8.2', '8.3', '8.4', '8.5']
fail-fast: false
name: PHP ${{ matrix.phpVersions }}
steps:
- name: Checkout changes
uses: actions/checkout@v1
- name: Install PHP
uses: shivammathur/setup-php@master
with:
php-version: ${{ matrix.phpVersions }}
- name: Install Composer dependencies
run: |
composer config --no-interaction allow-plugins.composer/installers true
composer install --no-interaction --no-progress --no-scripts
- name: Run Tests
run: ./vendor/bin/phpunit ./tests
================================================
FILE: .gitignore
================================================
# Composer files
/vendor
composer.phar
composer.lock
# Editor files
.idea
.vscode
.claude
# Other files
.DS_Store
php_errors.log
.phpunit.result.cache
================================================
FILE: CREDITS.md
================================================
# Credits
This library was created with help from the following packages:
"Laravel", Copyright (c) Taylor Otwell
https://github.com/laravel/framework
"Parsedown", Copyright (c) 2013-2018 Emanuil Rusev, erusev.com
https://github.com/erusev/parsedown
"Assetic", Copyright (c) 2010-2015 OpenSky Project Inc
https://github.com/kriswallsmith/assetic
"http_build_url() for PHP", Copyright (c) 2015 Jake A. Smith
https://github.com/jakeasmith/http_build_url
"Twig extensions", Copyright (c) 2016 Vojta Svoboda
https://github.com/vojtasvoboda/oc-twigextensions-plugin
"October Code", Copyright (c) 2022 Sergey Kasyanov
https://github.com/SergeyKasyanov/vscode-october-extension
================================================
FILE: LICENSE.md
================================================
Copyright (c) 2013-2022 Responsiv Pty Ltd
This End User License Agreement (“EULA”) constitutes a binding agreement between you (the “Licensee”, “you” or “your”) and Responsiv Pty Ltd - ACN 159 492 823 (the “Company”, “we”, “us” or “our”) with respect to your use of the October CMS software (“Licensed Software” or “October CMS Software”). The Company and the Licensee are each individually referred to as “Party” and collectively as “Parties”.
Please carefully read the terms and conditions of this EULA before installing and using the Licensed Software. By using the Licensed Software, you represent that you have read this EULA, and you agree to be bound by all the terms and conditions of this EULA, including any other agreements and policies referenced in this EULA. If you do not agree with any provisions of this EULA, please do not install the October CMS Software.
The Company reserves the right to modify or discontinue the October CMS Software or any portion thereof, temporarily or permanently, with or without notice to you. The Company will not be under any obligation to support or update the Licensed Software, except as described in this EULA.
YOU AGREE THAT THE COMPANY SHALL NOT BE LIABLE TO YOU OR ANY THIRD PARTY IN THE EVENT THAT WE EXERCISE OUR RIGHT TO MODIFY OR DISCONTINUE THE LICENSED SOFTWARE OR ANY PORTION THEREOF.
## Summary
This section outlines some of the key provisions covered in this EULA. Please note that this summary is provided for your convenience only, and it does not relieve you of your obligation to read the full EULA before installing/using the October CMS Software.
By proceeding to use the October CMS Software, you understand and agree that:
- You must be at least 18 years of age to enter into this EULA;
- You will only use the October CMS Software in compliance with applicable laws;
- October CMS Software licenses are only issued for Projects created through the website. To acquire/renew your Project licence, you need to sign in to your October CMS Account, and select/create the Project for which you wish to acquire/renew the licence;
- You will be responsible for paying the full License Fee prior to installing the October CMS Software;
- All License Fee Payments are non-refundable;
- Upon full payment of the License Fee, you will receive a License Key that allows you to install the Licensed Software to create a single production or non-production website and ancillary installations needed to support that single production or non-production website;
- Each new/renewed Project licence comes with one year of Updates. You may continue to use your expired Project license in perpetuity, but if you wish to continue receiving all the Updates, you will be required to keep your Project licence active by renewing it every year;
- Subject to the payment of full License Fee and compliance with this EULA, the Company and its third party licensors grant you a limited, non-exclusive, non-transferable, non-assignable, perpetual and worldwide license to install and/or use the October CMS Software;
- The Company and its licensors retain all rights, title and interest in the October CMS Software, Documentation and other similar proprietary materials made available to you;
- You will not sublicense, resell, distribute, or transfer the Licensed Software to any third party without the Company’s prior written consent;
- You will not remove, obscure or otherwise modify any copyright notices from the October CMS Software files or this EULA;
- You will not modify, disassemble, or reverse engineer any part of the October CMS Software;
- You will take all required steps to prevent unauthorised installation/use of the October CMS Software and prevent any breach of this EULA;
- The Company may terminate this EULA if you are in breach of any provision of this EULA or if we discontinue the October CMS Software;
- SUBJECT TO YOUR STATUTORY RIGHTS, THE COMPANY PROVIDES THE OCTOBER CMS SOFTWARE TO YOU “AS IS” AND “WITH ALL FAULTS”. THE COMPANY DOES NOT OFFER ANY WARRANTIES, WHETHER EXPRESS OR IMPLIED. IN NO EVENT WILL THE COMPANY’S AGGREGATE LIABILITY TO YOU FOR ANY CLAIMS CONNECTED WITH THIS EULA OR THE OCTOBER CMS SOFTWARE EXCEED THE AMOUNT ACTUALLY PAID BY YOU TO THE COMPANY FOR THE OCTOBER CMS SOFTWARE IN THE TWELVE MONTHS PRECEDING THE DATE WHEN THE CLAIM FIRST AROSE;
- This EULA shall be governed by and construed in accordance with the laws of the state of New South Wales, Australia, without giving effect to any principles of conflict of laws.
## Table of Contents
- [1. Definitions](#Definitions)
- [2. Authorisation](#Authorisation)
- [3. License Grant](#License-Grant)
- [4. License Purchase and Renewal](#License-Purchase-and-Renewal)
- [5. License Fees, Payments and Refunds](#License-Fees-Payments-and-Refunds)
- [6. Ownership](#Ownership)
- [7. Use and Restrictions](#Use-and-Restrictions)
- [8. Technical Support](#Technical-Support)
- [9. Termination](#Termination)
- [10. Statutory Consumer Rights](#Statutory-Consumer-Rights)
- [11. Disclaimer of Warranties](#Disclaimer-of-Warranties)
- [12. Limitation of Liability](#Limitation-of-Liability)
- [13. Waiver](#Waiver)
- [14. Indemnification](#Indemnification)
- [15. Compliance with the Laws](#Compliance-with-the-Laws)
- [16. Data Protection](#Data-Protection)
- [17. Delivery](#Delivery)
- [18. General](#General)
<a name="Definitions"></a>
## 1. Definitions
The following words shall have the meaning given hereunder whenever they appear in this EULA:
Term | Definition
---- | -----------
Account | refers to a user account registered on the Website by an individual or entity.
Active Term | means the period commencing from the date of License purchase/renewal until the License expiry date as specified on the Project page in your Account.
Documentation | means the current version of the documentation relating to the October CMS Software available at https://docs.octobercms.com or otherwise made available by the Company in electronic format. Documentation includes but is not limited to installation instructions, user guides and help documents regarding the use of the October CMS Software.
License Fee | means the fee payable by the Licensee for the use of the October CMS Software in accordance with the provisions of this EULA and any other applicable agreements referenced in this EULA.
License Key | means a unique string of characters provided by the Company that enables users to install the October CMS Software for a specific Project.
Modifications | means any changes to the original code or files of the October CMS Software by the Licensee or any third party. For the avoidance of any doubt, the term “Modifications” does not include any Updates furnished by the Company.
October CMS Software | refers to the collection of proprietary code and graphics in various file formats provided by the Company to the Licensee.
Project | means a collection of extensions and themes to be used in a single production website.
Updates | means all new releases of the October CMS Software, including but not limited to new features and fixes which are provided by the Company to a Licensee during the Active Term of the License.
The Website | refers to the Company website located at www.octobercms.com.
<a name="Authorisation"></a>
## 2. Authorisation
You must be at least 18 years of age and have the legal capacity to enter into this EULA. If you are accepting this EULA on behalf of a corporation, organisation, or other legal entity (‘corporate entity’), you warrant that you have the authority to enter into this EULA on behalf of such corporate entity and to bind the former to this EULA.
<a name="License-Grant"></a>
## 3. License Grant
Subject to your compliance with all the terms and conditions of this EULA and the payment of the full License Fee, the Company and its third party licensors grant you a limited, non-exclusive, non-transferable, non-assignable, perpetual and worldwide license to install and/or use the October CMS Software.
You shall be solely responsible for ensuring that all your authorised employees, contractors or other users of the Licensed Software comply with all the terms and conditions of this EULA, and any failure to comply with this EULA will be deemed as a breach of this EULA by you.
The Company and its third party licensors may make changes to the Licensed Software, which are provided to you through Updates. You will only receive all such Updates during the Active Term of your license. You will not have any right to receive Updates after the expiration of your license. Please note that if you terminate your Account, you will not be able to access your Projects and renew your license/receive any future Updates.
UNLESS EXPRESSLY PROVIDED IN THIS EULA, YOU MAY NOT COPY OR MODIFY THE OCTOBER CMS SOFTWARE.
<a name="License-Purchase-and-Renewal"></a>
## 4. License Purchase and Renewal
October CMS Software licenses are only issued for Projects created through the Website. To acquire a new Project licence or to renew an existing Project licence, you must sign in to your October CMS Account and select/create the Project for which you wish to acquire/renew the licence.
Upon full payment of the License Fee, you will receive a License Key that allows you to install the Licensed Software to create a single production or non-production website and ancillary installations needed to support that single production or non-production website.
Each new/renewed Project licence comes with one year of Updates starting from the date on which you pay the License Fee. You are not under any legal obligation to renew your Project licence, and you can continue to use your expired Project license for your website in perpetuity. Please note that expired Project licenses do not receive any Updates. If you wish to continue receiving all the Updates, you will be required to keep your Project licence active by renewing it every year.
By installing and using the October CMS Software, you assume full responsibility for your selection of the Licensed Software, its installation, and the results obtained from the use of the October CMS Software.
<a name="License-Fees-Payments-and-Refunds"></a>
## 5. License Fees, Payments and Refunds
The current License Fee for the October CMS Software is published on the Website, and the amount is specified in United States Dollars (USD). The License fee as specified on the Website does not include any taxes which shall be payable by the Licensee in addition to the License Fee.
The License fee becomes due and payable in full at the time the Licensee purchases a new Project license or renews an existing Project license.
All Project licenses are issued/renewed subject to the payment of the License Fee by the Licensee as outlined in Section 7 of our [Website Terms of Use](https://octobercms.com/help/terms/website#fees-payments-refunds-policy) and incorporated into this EULA by reference. The Company reserves the right to refuse issuance of a new Project license or renewal of an existing license until the Company receives the full payment.
To the extent permitted by law, all License Fee payments are non-refundable.
<a name="Ownership"></a>
## 6. Ownership
Nothing in this EULA constitutes the sale of October CMS Software to you. The Company and its licensors retain all rights, title and interest in the October CMS Software, Documentation and other similar proprietary materials made available to you (collectively “Proprietary Material”). All Proprietary Material is protected by copyright and other intellectual property laws of Australia and international conventions. You acknowledge that the October CMS Software may contain some open source software that is not owned by the Company and which shall be governed by its own license terms.
Except where authorised by the Company in writing, any use of the October CMS trademark, trade name, or logo is strictly prohibited. The Company reserves all rights that are not expressly granted in and to the Proprietary Material.
<a name="Use-and-Restrictions"></a>
## 7. Use and Restrictions
You hereby agree that:
1. A License Key may only be used to create a single production or non-production website as provided in Section 4 (License Purchase and Renewal) of this EULA. If you wish to create another website, you will need to create a new Project and acquire a new License for that Project;
2. Unless expressly provided otherwise in this EULA or other applicable agreements referenced herein, you will not sublicense, resell, distribute, or transfer the Licensed Software to any third party without the Company’s prior written consent;
3. You will not remove, obscure or otherwise modify any copyright notices from the October CMS Software files or this EULA;
4. You will not modify, disassemble, or reverse engineer any part of the October CMS Software;
5. You will take all required steps to prevent unauthorised installation/use of the October CMS Software and prevent any breach of this EULA;
6. You do not receive any rights, interests or titles in the “October CMS” trademark, trade name or service mark (“Marks”), and you will not use any of these Marks without our express consent.
<a name="Technical-Support"></a>
## 8. Technical Support
The Company does not offer any technical support except as described in our Premium Support Policy. The Company reserves the right to deny any and all technical support for any Modifications of the October CMS Software or in the event of any breach of this EULA.
<a name="Termination"></a>
## 9. Termination
This EULA shall remain effective until terminated by either Party as described below.
### 9.1 Termination by Licensee
You may terminate this EULA by uninstalling the October CMS Software and deleting all files and your Account. Please note that once you delete your Account, you will not be able to reactivate it to restore your Projects and access your License Key.
### 9.2 Termination by the Company
The Company may terminate this EULA if you are in breach of any provision of this EULA or if we discontinue the October CMS Software.
### 9.3 Survival
Section 11 (Disclaimer of Warranties), Section 12 (Limitation of Liability), Section 13 (Waiver), Section 14 (Indemnification) and other sections of this EULA that by their nature are intended to survive the termination of this EULA shall survive.
Unless expressly specified otherwise in this EULA, any termination of this EULA either by you or the Company does not create any obligation on the Company to issue a full or partial refund of the License Fee paid by you.
<a name="Statutory-Consumer-Rights"></a>
## 10. Statutory Consumer Rights
### 10.1 CONSUMERS IN AUSTRALIA
If you acquire the October CMS Software license as a “consumer”, nothing in this EULA will exclude, limit or modify any rights and guarantees conferred on you by legislation, including the Australian Consumer Law (ACL) in the Competition and Consumer Act 2010 (Cth) (‘Statutory Rights’). If the Company is in breach of any such Statutory Rights, then the Company’s liability shall be limited (at the Company’s option) to:
10.1.1 In case of products supplied to you, to resupplying, replacing or paying the cost of resupplying or replacing the product in respect of which the breach occurred;
10.1.2 In case of services supplied to you, to resupply the service or to pay the cost of resupplying the service in respect of which the breach occurred.
Unless expressly specified otherwise in this EULA, you agree that the Company’s liability for the October CMS Software is governed solely by this EULA and the Australian Consumer Law.
### 10.1 CONSUMERS OUTSIDE OF AUSTRALIA
If you are deemed a “consumer” by statutory law in your country of residence, you may enjoy some legal rights under your local law which prohibit the exclusions, modification or limitations of certain liabilities from applying to you, and where such prohibition exists in your country of residence, any such limitations or exclusions will only apply to you to the extent it is permitted by your local law.
You agree that apart from the application of your statutory consumer rights, the Company’s liability for the October CMS Software is governed solely by this EULA.
<a name="Disclaimer-of-Warranties"></a>
## 11. Disclaimer of Warranties
SUBJECT TO YOUR STATUTORY RIGHTS AS PROVIDED IN SECTION 10 ABOVE, THE COMPANY PROVIDES THE OCTOBER CMS SOFTWARE TO YOU “AS IS” AND “WITH ALL FAULTS”.
EXCLUDING ANY EXPRESS WARRANTIES OFFERED IN THIS EULA, TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, THE COMPANY, ITS EMPLOYEES, DIRECTORS, CONTRACTORS, AFFILIATES (“THE COMPANY AND ITS OFFICERS”) DISCLAIM ANY EXPRESS OR IMPLIED WARRANTIES WITH RESPECT TO THE OCTOBER CMS SOFTWARE, INCLUDING WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, ACCURACY, RELIABILITY, COURSE OF PERFORMANCE OR USAGE IN TRADE. THE COMPANY DOES NOT WARRANT THAT THE OCTOBER CMS SOFTWARE: WILL MEET YOUR REQUIREMENTS; WILL BE UNINTERRUPTED, ERROR-FREE, OR SECURE; OR THAT THE COMPANY WILL BE ABLE TO RECTIFY ANY ERRORS, BUGS, SECURITY VULNERABILITIES. NO OBLIGATION, WARRANTIES OR LIABILITY SHALL ARISE OUT OF ANY TECHNICAL SUPPORT SERVICES PROVIDED BY THE COMPANY AND ITS OFFICERS IN CONNECTION WITH THE OCTOBER CMS SOFTWARE. NO VERBAL OR WRITTEN COMMUNICATION RECEIVED FROM THE COMPANY AND ITS OFFICERS, WHETHER MARKETING, PROMOTIONAL OR TECHNICAL SUPPORT, SHALL CREATE ANY WARRANTIES THAT ARE NOT EXPRESSLY PROVIDED IN THIS EULA.
ALTHOUGH THE COMPANY PERIODICALLY RELEASES UPDATES FOR THE OCTOBER CMS SOFTWARE THAT MAY INCLUDE FIXES FOR KNOWN VULNERABILITIES, YOU ACKNOWLEDGE AND AGREE THAT THERE MAY BE VULNERABILITIES THAT THE COMPANY HAS NOT YET IDENTIFIED AND THEREFORE CANNOT ADDRESS. YOU ACKNOWLEDGE AND AGREE THAT YOU ARE SOLELY RESPONSIBLE FOR TAKING ALL THE PRECAUTIONS AND SAFEGUARDS NECESSARY TO PROTECT YOUR WEBSITE AND DATA FROM ANY EXTERNAL ATTACKS, INCLUDING BUT NOT LIMITED TO KEEPING YOUR OCTOBER CMS SOFTWARE INSTALLATION CURRENT AND UP TO DATE.
SOME JURISDICTIONS DO NOT ALLOW THE EXCLUSION OF IMPLIED WARRANTIES, SO THE ABOVE EXCLUSION MAY NOT APPLY TO YOU.
<a name="Limitation-of-Liability"></a>
## 12. Limitation of Liability
IN NO EVENT SHALL THE COMPANY BE LIABLE TO YOU OR ANY THIRD-PARTY FOR ANY LOSS OF REVENUE, LOSS OF PROFITS (ACTUAL OR ANTICIPATED), LOSS OF SAVINGS (ACTUAL OR ANTICIPATED), LOSS OF OPPORTUNITY, LOSS OF REPUTATION, LOSS OF GOODWILL OR FOR ANY INDIRECT, INCIDENTAL, CONSEQUENTIAL, SPECIAL OR PUNITIVE DAMAGES RESULTING FROM THE INSTALLATION, USE OR INABILITY TO USE THE OCTOBER CMS SOFTWARE, WHETHER ARISING FROM ANY BREACH OF CONTRACT, NEGLIGENCE OR ANY OTHER THEORY OF LIABILITY, EVEN IF THE COMPANY WAS PREVIOUSLY ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. THE LICENSEE SHALL BE SOLELY RESPONSIBLE FOR DETERMINING THE SUITABILITY OF THE LICENSED SOFTWARE AND ALL RISKS ASSOCIATED WITH ITS USE.
IN NO EVENT WILL THE COMPANY’S AGGREGATE LIABILITY TO YOU FOR ANY CLAIMS CONNECTED WITH THIS EULA OR THE OCTOBER CMS SOFTWARE, INCLUDING THOSE ARISING FROM ANY BREACH OF CONTRACT OR NEGLIGENCE, EXCEED THE AMOUNT ACTUALLY PAID BY YOU TO THE COMPANY FOR THE OCTOBER CMS SOFTWARE IN THE TWELVE MONTHS PRECEDING THE DATE WHEN THE CLAIM FIRST AROSE.
NOTWITHSTANDING ANYTHING TO THE FOREGOING, NOTHING IN THIS PROVISION SHALL LIMIT EITHER PARTY’S LIABILITY FOR ANY FRAUD OR LIABILITY THAT CANNOT BE LIMITED BY LAW.
<a name="Waiver"></a>
## 13. Waiver
YOU HEREBY RELEASE THE COMPANY AND ITS OFFICERS FROM ALL UNKNOWN RISKS ARISING OUT OF OR ASSOCIATED WITH THE USE OF THE OCTOBER CMS SOFTWARE. IF YOU ARE A RESIDENT IN THE STATE OF CALIFORNIA, U.S.A., YOU EXPRESSLY WAIVE CALIFORNIA CIVIL CODE SECTION 1542, OR OTHER SIMILAR LAW APPLICABLE TO YOU, WHICH STATES: “A GENERAL RELEASE DOES NOT EXTEND TO CLAIMS WHICH THE CREDITOR DOES NOT KNOW OR SUSPECT TO EXIST IN HIS OR HER FAVOR AT THE TIME OF EXECUTING THE RELEASE, WHICH IF KNOWN BY HIM OR HER MUST HAVE MATERIALLY AFFECTED HIS OR HER SETTLEMENT WITH THE DEBTOR OR RELEASED PARTY. ”
**YOU ACKNOWLEDGE AND AGREE THAT THE LIMITATION OF LIABILITY AND THE WAIVER SET FORTH ABOVE REFLECT A REASONABLE AND FAIR ALLOCATION OF RISK BETWEEN YOU AND THE COMPANY AND THAT THESE PROVISIONS FORM AN ESSENTIAL BASIS OF THE BARGAIN BETWEEN YOU AND THE COMPANY. THE COMPANY WOULD NOT BE ABLE TO PROVIDE THE OCTOBER CMS SOFTWARE TO YOU ON AN ECONOMICALLY REASONABLE BASIS WITHOUT THESE LIMITATIONS.**
<a name="Indemnification"></a>
## 14. Indemnification
14.1 The Company will defend or settle any claims against you that allege that the October CMS Software as supplied to you for installation and use in accordance with this EULA and Documentation infringes the intellectual property rights of a third party provided that:
14.1.1 You immediately notify the Company of any such claim that relates to this indemnity;
14.1.2 The Company has the sole right to control the defence or settlement of such claim; and
14.1.3 You provide the Company with all reasonable assistance in relation to the defence.
14.2 For any claims of infringement of intellectual property mentioned in Section 14.1, the Company reserves the right to:
14.2.1 Modify or replace the Licensed Software to make it non-infringing provided such modification or replacement does not substantively change the functionality of the Licensed Software; or
14.2.2 Acquire at its own expense the right for you to continue the use of the Licensed Software; or
14.2.3 Terminate the Project license and direct you to cease the use of the Licensed Software. In such cases, the Company will provide you with a full refund of the License Fees paid by you for the Licensed Software in the preceding 12 months. Please note that where the Company directs you to cease the use of the October CMS Software due to a third party claim of infringement, you are under a legal obligation to immediately cease such use.
Unless otherwise provided by law, this Section 14 sets out your exclusive remedies for any infringement of intellectual property claims made by a third party against you and nothing in this EULA will create any obligations on the Company to offer greater indemnity. The Company does not have any obligation to defend or indemnify any other third party.
14.3 The Company shall not have any obligation to indemnify you if:
14.3.1 The infringement arises out of any Modification of the October CMS Software;
14.3.2 The infringement arises from any combination, operation, or use of the Licensed Software with any other third party software;
14.3.3 The infringement arises from the use of the Licensed Software in breach of this EULA;
14.3.4 The infringement arises from the use of the Licensed Software after the Company has informed you to cease the use of the Licensed Software due to possible claims.
14.4 You will indemnify the Company against any third party claims, damages, losses and costs, including reasonable attorney fees arising from:
14.4.1 Your actions or omissions (actual or alleged), including without limitation, claims that your actions or omission infringe any third party’s intellectual property rights; or
14.4.2 Your violation of any applicable laws; or
14.4.3 Your breach of this EULA.
<a name="Compliance-with-the-Laws"></a>
## 15. Compliance with the Laws
You will only install/use the October CMS Software and fulfil all your obligations under this EULA in compliance with all applicable laws. You hereby confirm that neither you nor the corporate entity that you represent is subject or target of any government Sanctions, and your use of the October CMS Software would not result in violation of any Sanctions by the Company.
You further confirm that the Licensed Software will not be used by any individual or entity engaged in any of the following activities: (i) Terrorist activities; (ii) design, development or production of any weapons of mass destruction; or (iii) any other illegal activity.
<a name="Data-Protection"></a>
## 16. Data Protection
The Company only collects minimal personal data from the Licensee, as described in our Privacy Policy. The Company does not process any data on behalf of the Licensee, and the Licensee shall be solely responsible for compliance with applicable data protection laws for any data it controls or processes.
<a name="Delivery"></a>
## 17. Delivery
The Company will deliver the October CMS Software and this EULA to you by electronic download.
<a name="General"></a>
## 18. General
### 18.1 Amendments
The Company reserves the right to amend the terms and conditions of this EULA at any time and without giving any prior notice to you. You acknowledge that you are responsible for periodically reviewing this EULA to familiarise yourself with any changes. Your continued use of the October CMS Software after any changes to the EULA shall constitute your consent to such change. You can access the latest version of the EULA by visiting https://octobercms.com/eula
### 18.2 Assignment
You may not assign any rights and obligations under this EULA, in whole or in part, without an authorised Company representative's written consent. Any attempt to assign any rights and obligations without the Company's consent shall be void. The Company reserves the right to assign any of its rights and obligations under this EULA to a third party without requiring your consent.
### 18.3 Notices
You hereby consent to receive all notices and communication from the Company electronically.
All notices to the Company under this EULA shall be sent to:
PO Box 47<br />
Queanbeyan NSW 2620<br />
Australia
For any other questions relating to this EULA, please contact us at https://octobercms.com/contact
### 18.4 Governing Law and Jurisdiction
This EULA shall be governed by and construed in accordance with the laws of the state of New South Wales, Australia, without giving effect to any principles of conflict of laws. The parties hereby agree to submit to the non-exclusive jurisdiction of the courts of New South Wales to decide any matter arising out of these Terms. Both Parties hereby agree that the United Nations Convention on Contracts for the International Sale of Goods will not apply to this EULA.
### 18.5 Force Majeure
Neither Party will be liable to the other for any failure or delay in the performance of its obligations to the extent that such failure or delay is caused by any unforeseen events which are beyond the reasonable control of the obligated Party such as an act of God, strike, war, terrorism, epidemic, internet or telecommunication outage or other similar events, and the obligated Party is not able to avoid or remove the force measure by taking reasonable measures.
================================================
FILE: README.md
================================================
October Rain
=======
This repository contains the core library of October CMS. If you want to build a website using October, visit the main [October repository](http://github.com/octobercms/october).
## License
The October CMS platform is licensed software, see [End User License Agreement](./LICENSE.md) (EULA) for more details.
================================================
FILE: composer.json
================================================
{
"name": "october/rain",
"description": "October Rain Library",
"homepage": "http://octobercms.com",
"keywords": ["october", "cms", "rain"],
"authors": [
{
"name": "Alexey Bobkov",
"email": "aleksey.bobkov@gmail.com"
},
{
"name": "Samuel Georges",
"email": "daftspunky@gmail.com"
}
],
"require": {
"php": "^8.1",
"composer/composer": "^2.0.0",
"composer/installers": "^1 || ^2",
"larajax/larajax": "^2.0",
"doctrine/dbal": "^2.13.3|^3.1.4",
"intervention/image": "^3.10",
"jaybizzle/crawler-detect": "^1.3",
"linkorb/jsmin-php": "~1.0",
"wikimedia/less.php": "~5.2",
"scssphp/scssphp": "~1.0",
"symfony/yaml": "^6.4|^7.0",
"twig/twig": "^3.21",
"league/csv": "~9.1",
"laravel/tinker": "~2.0|~3.0",
"symfony/html-sanitizer": "^6.1|^7.0",
"enshrined/svg-sanitize": "^0.22"
},
"require-dev": {
"laravel/framework": "^12.0",
"phpunit/phpunit": "^8.0|^9.0|^10.0|^11.0|^12.5.22",
"meyfa/phpunit-assert-gd": "^2.0.0|^3.0.0",
"phpbench/phpbench": "^1.4"
},
"autoload": {
"files": [
"init/init.php"
],
"classmap": [
"globals/"
],
"psr-4": {
"October\\Rain\\": "src/",
"October\\Contracts\\": "contracts/"
}
},
"autoload-dev": {
"classmap": [
"tests/TestCase.php"
]
},
"scripts": {
"test": [
"phpunit --stop-on-failure"
],
"bench": [
"phpbench run tests\\Benchmark\\ --report=default"
]
},
"extra": {
"laravel": {
"providers": [
"October\\Rain\\Foundation\\Providers\\CoreServiceProvider"
]
}
},
"minimum-stability": "dev",
"prefer-stable": true,
"config": {
"allow-plugins": {
"composer/installers": true
}
}
}
================================================
FILE: contracts/Database/CurrencyableInterface.php
================================================
<?php namespace October\Contracts\Database;
/**
* CurrencyableInterface
*
* @package october\contracts
* @author Alexey Bobkov, Samuel Georges
*/
interface CurrencyableInterface
{
/**
* getCurrencyableAttributes returns the list of currencyable attribute names
* @return array
*/
public function getCurrencyableAttributes();
/**
* isCurrencyableAttribute checks if a given attribute is currencyable
* @return bool
*/
public function isCurrencyableAttribute($key);
/**
* isCurrencyableEnabled
* @return bool
*/
public function isCurrencyableEnabled();
}
================================================
FILE: contracts/Database/MultisiteGroupInterface.php
================================================
<?php namespace October\Contracts\Database;
/**
* MultisiteGroupInterface
*
* @package october\contracts
* @author Alexey Bobkov, Samuel Georges
*/
interface MultisiteGroupInterface
{
/**
* isMultisiteGroupEnabled
* @return bool
*/
public function isMultisiteGroupEnabled(): bool;
/**
* getSiteGroupIdColumn
* @return string
*/
public function getSiteGroupIdColumn(): string;
/**
* getQualifiedSiteGroupIdColumn
* @return string
*/
public function getQualifiedSiteGroupIdColumn(): string;
}
================================================
FILE: contracts/Database/MultisiteInterface.php
================================================
<?php namespace October\Contracts\Database;
/**
* MultisiteInterface
*
* @package october\contracts
* @author Alexey Bobkov, Samuel Georges
*/
interface MultisiteInterface
{
/**
* findOrCreateForSite
*/
public function findOrCreateForSite(?string $siteId = null);
/**
* isMultisiteEnabled
* @return bool
*/
public function isMultisiteEnabled();
/**
* isMultisiteSyncEnabled
* @return bool
*/
public function isMultisiteSyncEnabled();
}
================================================
FILE: contracts/Database/NestedSetInterface.php
================================================
<?php namespace October\Contracts\Database;
/**
* NestedSetInterface
*
* @package october\contracts
* @author Alexey Bobkov, Samuel Georges
*/
interface NestedSetInterface
{
/**
* moveAfter
*/
public function moveAfter($node);
/**
* moveBefore
*/
public function moveBefore($node);
/**
* makeChildOf
*/
public function makeChildOf($node);
}
================================================
FILE: contracts/Database/SoftDeleteInterface.php
================================================
<?php namespace October\Contracts\Database;
/**
* SoftDeleteInterface
*
* @package october\contracts
* @author Alexey Bobkov, Samuel Georges
*/
interface SoftDeleteInterface
{
/**
* trashed
* @return bool
*/
public function trashed();
/**
* restore
* @return bool|null
*/
public function restore();
/**
* forceDelete on a soft deleted model.
* @return void
*/
public function forceDelete();
}
================================================
FILE: contracts/Database/SortableInterface.php
================================================
<?php namespace October\Contracts\Database;
/**
* SortableInterface
*
* @package october\contracts
* @author Alexey Bobkov, Samuel Georges
*/
interface SortableInterface
{
/**
* setSortableOrder
*/
public function setSortableOrder($itemIds, $itemOrders = null);
}
================================================
FILE: contracts/Database/SortableRelationInterface.php
================================================
<?php namespace October\Contracts\Database;
/**
* SortableRelationInterface
*
* @package october\contracts
* @author Alexey Bobkov, Samuel Georges
*/
interface SortableRelationInterface
{
/**
* setSortableRelationOrder sets the sort order of records to the specified orders. If the orders is
* undefined, the record identifier is used.
* @param string $relationName
* @param mixed $itemIds
* @param array $itemOrders
*/
public function setSortableRelationOrder($relationName, $itemIds, $itemOrders = null);
/**
* isSortableRelation returns true if the supplied relation is sortable.
*/
public function isSortableRelation($relationName);
}
================================================
FILE: contracts/Database/TranslatableInterface.php
================================================
<?php namespace October\Contracts\Database;
/**
* TranslatableInterface
*
* @package october\contracts
* @author Alexey Bobkov, Samuel Georges
*/
interface TranslatableInterface
{
/**
* getTranslatableAttributes returns the list of translatable attribute names
* @return array
*/
public function getTranslatableAttributes();
/**
* isTranslatableAttribute checks if a given attribute is translatable
* @return bool
*/
public function isTranslatableAttribute($key);
/**
* isTranslatableEnabled
* @return bool
*/
public function isTranslatableEnabled();
}
================================================
FILE: contracts/Database/TreeInterface.php
================================================
<?php namespace October\Contracts\Database;
use Illuminate\Support\Collection;
/**
* TreeInterface
*
* @package october\contracts
* @author Alexey Bobkov, Samuel Georges
*/
interface TreeInterface
{
/**
* getChildren
*/
public function getChildren(): Collection;
/**
* getChildCount
*/
public function getChildCount(): int;
/**
* scopeGetNested
*/
public function scopeGetNested($query);
/**
* scopeListsNested
*/
public function scopeListsNested($query, $column, $key = null, $indent = ' ');
}
================================================
FILE: contracts/Database/ValidationInterface.php
================================================
<?php namespace October\Contracts\Database;
/**
* ValidationInterface
*
* @package october\contracts
* @author Alexey Bobkov, Samuel Georges
*/
interface ValidationInterface
{
/**
* setValidationAttributeNames
*/
public function setValidationAttributeNames($attributeNames);
/**
* isAttributeRequired
* @return bool
*/
public function isAttributeRequired($attribute, $checkDependencies = true);
}
================================================
FILE: contracts/Element/FilterElement.php
================================================
<?php namespace October\Contracts\Element;
use October\Rain\Element\Filter\ScopeDefinition;
/**
* FilterElement
*
* @package october\contracts
* @author Alexey Bobkov, Samuel Georges
*/
interface FilterElement
{
/**
* defineScope adds a scope to the filter element
*/
public function defineScope(string $scopeName, ?string $label = null): ScopeDefinition;
}
================================================
FILE: contracts/Element/FormElement.php
================================================
<?php namespace October\Contracts\Element;
use October\Rain\Element\Form\FieldDefinition;
use October\Rain\Element\Form\FieldsetDefinition;
/**
* FormElement
*
* @package october\contracts
* @author Alexey Bobkov, Samuel Georges
*/
interface FormElement
{
/**
* addFormField adds a field to the fieldset
*/
public function addFormField(string $fieldName, ?string $label = null): FieldDefinition;
/**
* getFormFieldset returns the current fieldset definition
*/
public function getFormFieldset(): FieldsetDefinition;
/**
* getFormContext returns the current form context, e.g. create, update
*/
public function getFormContext();
}
================================================
FILE: contracts/Element/ListElement.php
================================================
<?php namespace October\Contracts\Element;
use October\Rain\Element\Lists\ColumnDefinition;
/**
* ListElement
*
* @package october\contracts
* @author Alexey Bobkov, Samuel Georges
*/
interface ListElement
{
/**
* defineColumn adds a column to the list element
*/
public function defineColumn(string $columnName, ?string $label = null): ColumnDefinition;
}
================================================
FILE: contracts/Support/OctoberPackage.php
================================================
<?php namespace October\Contracts\Support;
/**
* OctoberPackage
*
* @package october\contracts
* @author Alexey Bobkov, Samuel Georges
*/
interface OctoberPackage
{
/**
* registerMarkupTags registers Twig markup tags introduced by this package.
*
* return [
* 'filters' => [],
* 'functions' => []
* ];
*
* @return array
*/
public function registerMarkupTags();
/**
* registerComponents registers any CMS components implemented in this package.
*
* return [
* \Acme\Demo\Components\LocalePicker::class => 'localePicker',
* ];
*
* @return array
*/
public function registerComponents();
/**
* registerPageSnippets registers any CMS snippets implemented in this package.
*
* return [
* \Acme\Demo\Components\YouTubeVideo::class => 'youtubeVideo',
* ];
*
* @return array
*/
public function registerPageSnippets();
/**
* registerContentFields registers content fields used by tailor implemented in this package.
*
* return [
* \Tailor\ContentFields\TextareaField::class => 'textarea',
* ];
*
* @return array
*/
public function registerContentFields();
/**
* registerNavigation registers backend navigation items for this package.
*
* return [
* 'blog' => []
* ];
*
* @return array
*/
public function registerNavigation();
/**
* registerPermissions registers any permissions used by this package.
*
* return [
* 'general.backend' => [
* 'label' => 'Access the Backend Panel',
* 'tab' => 'General'
* ],
* ];
*
* @return array
*/
public function registerPermissions();
/**
* registerSettings registers any backend configuration links used by this package.
*
* return [
* 'updates' => []
* ];
*
* @return array
*/
public function registerSettings();
/**
* registerReportWidgets registers any report widgets provided by this package.
* The widgets must be returned in the following format:
*
* return [
* 'className1' => [
* 'label' => 'My widget 1',
* 'context' => ['context-1', 'context-2'],
* ],
* 'className2' => [
* 'label' => 'My widget 2',
* 'context' => 'context-1'
* ]
* ];
*
* @return array
*/
public function registerReportWidgets();
/**
* registerFormWidgets registers any form widgets implemented in this package.
* The widgets must be returned in the following format:
*
* return [
* ['className1' => 'alias'],
* ['className2' => 'anotherAlias']
* ];
*
* @return array
*/
public function registerFormWidgets();
/**
* registerFilterWidgets registers any filter widgets implemented in this package.
* The widgets must be returned in the following format:
*
* return [
* ['className1' => 'alias'],
* ['className2' => 'anotherAlias']
* ];
*
* @return array
*/
public function registerFilterWidgets();
/**
* registerListColumnTypes registers custom backend list column types introduced
* by this package.
*
* @return array
*/
public function registerListColumnTypes();
/**
* registerMailLayouts registers any mail layouts implemented by this package.
* The layouts must be returned in the following format:
*
* return [
* 'marketing' => 'acme.blog::layouts.marketing',
* 'notification' => 'acme.blog::layouts.notification',
* ];
*
* @return array
*/
public function registerMailLayouts();
/**
* registerMailTemplates registers any mail templates implemented by this package.
* The templates must be returned in the following format:
*
* return [
* 'acme.blog::mail.welcome',
* 'acme.blog::mail.forgot_password',
* ];
*
* @return array
*/
public function registerMailTemplates();
/**
* registerMailPartials registers any mail partials implemented by this package.
* The partials must be returned in the following format:
*
* return [
* 'tracking' => 'acme.blog::partials.tracking',
* 'promotion' => 'acme.blog::partials.promotion',
* ];
*
* @return array
*/
public function registerMailPartials();
/**
* registerSchedule registers scheduled tasks that are executed on a regular basis.
*
* @param \Illuminate\Console\Scheduling\Schedule $schedule
* @return void
*/
public function registerSchedule($schedule);
}
================================================
FILE: contracts/Twig/CallsAnyMethod.php
================================================
<?php namespace October\Contracts\Twig;
/**
* CallsAnyMethod from Twig engine
*
* @package october\contracts
* @author Alexey Bobkov, Samuel Georges
*/
interface CallsAnyMethod
{
}
================================================
FILE: contracts/Twig/CallsMethods.php
================================================
<?php namespace October\Contracts\Twig;
/**
* CallsMethods from Twig engine
*
* @package october\contracts
* @author Alexey Bobkov, Samuel Georges
*/
interface CallsMethods
{
/**
* getTwigMethodNames returns a list of method names that can be called from Twig.
*/
public function getTwigMethodNames(): array;
}
================================================
FILE: globals/AjaxException.php
================================================
<?php
/**
* AjaxException
*
* @see October\Rain\Exception\AjaxException
*/
class AjaxException extends October\Rain\Exception\AjaxException {}
================================================
FILE: globals/App.php
================================================
<?php
/**
* App
*
* @see \Illuminate\Contracts\Foundation\Application
*/
class App extends Illuminate\Support\Facades\App {}
================================================
FILE: globals/ApplicationException.php
================================================
<?php
/**
* ApplicationException
*
* @see October\Rain\Exception\ApplicationException
*/
class ApplicationException extends October\Rain\Exception\ApplicationException {}
================================================
FILE: globals/Arr.php
================================================
<?php
/**
* Arr
*
* @see \October\Rain\Support\Arr
*/
class Arr extends October\Rain\Support\Arr {}
================================================
FILE: globals/Artisan.php
================================================
<?php
/**
* Artisan
*
* @see \Illuminate\Contracts\Console\Kernel
*/
class Artisan extends Illuminate\Support\Facades\Artisan {}
================================================
FILE: globals/Auth.php
================================================
<?php
/**
* Auth
*
* @see \RainLab\User\Classes\AuthManager
*/
class Auth extends October\Rain\Support\Facades\Auth {}
================================================
FILE: globals/Backend.php
================================================
<?php
/**
* Backend
*
* @see \Backend\Helpers\Backend
*/
class Backend extends Backend\Facades\Backend {}
================================================
FILE: globals/BackendAuth.php
================================================
<?php
/**
* BackendAuth
*
* @see \Backend\Classes\AuthManager
*/
class BackendAuth extends Backend\Facades\BackendAuth {}
================================================
FILE: globals/BackendMenu.php
================================================
<?php
/**
* BackendMenu
*
* @see \Backend\Classes\NavigationManager
*/
class BackendMenu extends Backend\Facades\BackendMenu {}
================================================
FILE: globals/BackendUi.php
================================================
<?php
/**
* @deprecated see \Ui
*/
class BackendUi extends Backend\Facades\BackendUi {}
================================================
FILE: globals/Block.php
================================================
<?php
/**
* Block
*
* @see \October\Rain\Html\BlockBuilder
*/
class Block extends October\Rain\Support\Facades\Block {}
================================================
FILE: globals/Broadcast.php
================================================
<?php
/**
* Broadcast
*
* @see \Illuminate\Contracts\Broadcasting\Factory
*/
class Broadcast extends Illuminate\Support\Facades\Broadcast {}
================================================
FILE: globals/Bus.php
================================================
<?php
/**
* Bus
*
* @see \Illuminate\Contracts\Bus\Dispatcher
*/
class Bus extends Illuminate\Support\Facades\Bus {}
================================================
FILE: globals/Cache.php
================================================
<?php
/**
* Cache
*
* @see \Illuminate\Cache\CacheManager
* @see \Illuminate\Cache\Repository
*/
class Cache extends Illuminate\Support\Facades\Cache {}
================================================
FILE: globals/Cms.php
================================================
<?php
/**
* Cms
*
* @see \Cms\Helpers\Cms
*/
class Cms extends Cms\Facades\Cms {}
================================================
FILE: globals/Config.php
================================================
<?php
/**
* Config
*
* @see \Illuminate\Config\Repository
*/
class Config extends Illuminate\Support\Facades\Config {}
================================================
FILE: globals/Cookie.php
================================================
<?php
/**
* Cookie
*
* @see \Illuminate\Cookie\CookieJar
*/
class Cookie extends Illuminate\Support\Facades\Cookie {}
================================================
FILE: globals/Crypt.php
================================================
<?php
/**
* Crypt
*
* @see \Illuminate\Encryption\Encrypter
*/
class Crypt extends Illuminate\Support\Facades\Crypt {}
================================================
FILE: globals/Currency.php
================================================
<?php
/**
* Currency
*
* @see \Responsiv\Currency\Classes\CurrencyManager
*/
class Currency extends October\Rain\Support\Facades\Currency {}
================================================
FILE: globals/Date.php
================================================
<?php
/**
* Date
*
* @see Illuminate\Support\DateFactory
*/
class Date extends Illuminate\Support\Facades\Date {}
================================================
FILE: globals/Db.php
================================================
<?php
/**
* Db
*
* @see \Illuminate\Database\DatabaseManager
* @see \Illuminate\Database\Connection
*/
class Db extends Illuminate\Support\Facades\DB {}
================================================
FILE: globals/DbDongle.php
================================================
<?php
/**
* DbDongle
*
* @see \October\Rain\Database\Dongle
*/
class DbDongle extends October\Rain\Support\Facades\DbDongle {}
================================================
FILE: globals/Event.php
================================================
<?php
/**
* Event
*
* @see \October\Rain\Events\Dispatcher
*/
class Event extends October\Rain\Support\Facades\Event {}
================================================
FILE: globals/File.php
================================================
<?php
/**
* File
*
* @see \October\Rain\Filesystem\Filesystem
*/
class File extends October\Rain\Support\Facades\File {}
================================================
FILE: globals/Flash.php
================================================
<?php
/**
* Flash
*
* @see \October\Rain\Flash\FlashBag
*/
class Flash extends October\Rain\Support\Facades\Flash {}
================================================
FILE: globals/ForbiddenException.php
================================================
<?php
/**
* ForbiddenException
*
* @see October\Rain\Exception\ForbiddenException
*/
class ForbiddenException extends October\Rain\Exception\ForbiddenException {}
================================================
FILE: globals/Form.php
================================================
<?php
/**
* Form
*
* @see \October\Rain\Html\FormBuilder
*/
class Form extends October\Rain\Support\Facades\Form {}
================================================
FILE: globals/Hash.php
================================================
<?php
/**
* Hash
*
* @see \Illuminate\Hashing\HashManager
*/
class Hash extends Illuminate\Support\Facades\Hash {}
================================================
FILE: globals/Html.php
================================================
<?php
/**
* Html
*
* @see \October\Rain\Html\HtmlBuilder
*/
class Html extends October\Rain\Support\Facades\Html {}
================================================
FILE: globals/Http.php
================================================
<?php
/**
* Http
*
* @see \Illuminate\Http\Client\Factory
*/
class Http extends Illuminate\Support\Facades\Http {}
================================================
FILE: globals/Ini.php
================================================
<?php
/**
* Ini
*
* @see \October\Rain\Parse\Ini
*/
class Ini extends October\Rain\Support\Facades\Ini {}
================================================
FILE: globals/Input.php
================================================
<?php
/**
* Input
*
* @see Illuminate\Http\Request
*/
class Input extends October\Rain\Support\Facades\Input {}
================================================
FILE: globals/Lang.php
================================================
<?php
/**
* Lang
*
* @see \Illuminate\Translation\Translator
*/
class Lang extends Illuminate\Support\Facades\Lang {}
================================================
FILE: globals/Log.php
================================================
<?php
/**
* Log
*
* @see \Illuminate\Log\Logger
*/
class Log extends Illuminate\Support\Facades\Log {}
================================================
FILE: globals/Mail.php
================================================
<?php
/**
* Mail
*
* @see \October\Rain\Mail\Mailer
*/
class Mail extends October\Rain\Support\Facades\Mail {}
================================================
FILE: globals/Manifest.php
================================================
<?php
/**
* Manifest
*
* @see \System\Classes\ManifestCache
*/
class Manifest extends System\Facades\Manifest {}
================================================
FILE: globals/Markdown.php
================================================
<?php
/**
* Markdown
*
* @see \October\Rain\Parse\Markdown
*/
class Markdown extends October\Rain\Support\Facades\Markdown {}
================================================
FILE: globals/Model.php
================================================
<?php
/**
* Model
*
* @see October\Rain\Database\Model
*/
class Model extends October\Rain\Database\Model {}
================================================
FILE: globals/NotFoundException.php
================================================
<?php
/**
* NotFoundException
*
* @see October\Rain\Exception\NotFoundException
*/
class NotFoundException extends October\Rain\Exception\NotFoundException {}
================================================
FILE: globals/Notification.php
================================================
<?php
/**
* Notification
*
* @see \Illuminate\Notifications\ChannelManager
*/
class Notification extends Illuminate\Support\Facades\Notification {}
================================================
FILE: globals/Password.php
================================================
<?php
/**
* Password
*
* @see \Illuminate\Auth\Passwords\PasswordBroker
*/
class Password extends Illuminate\Support\Facades\Password {}
================================================
FILE: globals/Queue.php
================================================
<?php
/**
* Queue
*
* @see \Illuminate\Queue\QueueManager
*/
class Queue extends Illuminate\Support\Facades\Queue {}
================================================
FILE: globals/Redirect.php
================================================
<?php
/**
* Redirect
*
* @see \Illuminate\Routing\Redirector
*/
class Redirect extends Illuminate\Support\Facades\Redirect {}
================================================
FILE: globals/Redis.php
================================================
<?php
/**
* Redis
*
* @see \Illuminate\Redis\RedisManager
*/
class Redis extends Illuminate\Support\Facades\Redis {}
================================================
FILE: globals/Request.php
================================================
<?php
/**
* Request
*
* @see \Illuminate\Http\Request
*/
class Request extends Illuminate\Support\Facades\Request {}
================================================
FILE: globals/Resizer.php
================================================
<?php
/**
* Resizer
*
* @see \October\Rain\Resize\Resizer
*/
class Resizer extends October\Rain\Support\Facades\Resizer {}
================================================
FILE: globals/Response.php
================================================
<?php
/**
* Response
*
* @see \Illuminate\Contracts\Routing\ResponseFactory
*/
class Response extends Illuminate\Support\Facades\Response {}
================================================
FILE: globals/Route.php
================================================
<?php
/**
* Route
*
* @see \Illuminate\Routing\Router
*/
class Route extends Illuminate\Support\Facades\Route {}
================================================
FILE: globals/Schema.php
================================================
<?php
/**
* Schema
*
* @see \Illuminate\Database\Schema\Builder
*/
class Schema extends October\Rain\Support\Facades\Schema {}
================================================
FILE: globals/Seeder.php
================================================
<?php
/**
* Seeder
*
* @see October\Rain\Database\Updates\Seeder
*/
class Seeder extends October\Rain\Database\Updates\Seeder {}
================================================
FILE: globals/Session.php
================================================
<?php
/**
* Session
*
* @see \Illuminate\Session\Store
*/
class Session extends Illuminate\Support\Facades\Session {}
================================================
FILE: globals/Site.php
================================================
<?php
/**
* Site
*
* @see \System\Classes\SiteManager
*/
class Site extends October\Rain\Support\Facades\Site {}
================================================
FILE: globals/Storage.php
================================================
<?php
/**
* Storage
*
* @see \Illuminate\Filesystem\FilesystemManager
*/
class Storage extends Illuminate\Support\Facades\Storage {}
================================================
FILE: globals/Str.php
================================================
<?php
/**
* Str
*
* @see Illuminate\Support\Str
*/
class Str extends October\Rain\Support\Str {}
================================================
FILE: globals/System.php
================================================
<?php
/**
* System
*
* @see \System\Helpers\System
*/
class System extends System\Facades\System {}
================================================
FILE: globals/SystemException.php
================================================
<?php
/**
* SystemException
*
* @see October\Rain\Exception\SystemException
*/
class SystemException extends October\Rain\Exception\SystemException {}
================================================
FILE: globals/Twig.php
================================================
<?php
/**
* Twig
*
* @see \October\Rain\Parse\Twig
*/
class Twig extends October\Rain\Support\Facades\Twig {}
================================================
FILE: globals/Ui.php
================================================
<?php
/**
* Ui
*
* @see \System\Classes\UiManager
*/
class Ui extends System\Facades\Ui {}
================================================
FILE: globals/Url.php
================================================
<?php
/**
* Url
*
* @see \Illuminate\Routing\UrlGenerator
*/
class Url extends October\Rain\Support\Facades\Url {}
================================================
FILE: globals/ValidationException.php
================================================
<?php
/**
* ValidationException
*
* @see October\Rain\Exception\ValidationException
*/
class ValidationException extends October\Rain\Exception\ValidationException {}
================================================
FILE: globals/Validator.php
================================================
<?php
/**
* Validator
*
* @see \October\Rain\Validation\Factory
*/
class Validator extends October\Rain\Support\Facades\Validator {}
================================================
FILE: globals/View.php
================================================
<?php
/**
* View
*
* @see \Illuminate\View\Factory
*/
class View extends Illuminate\Support\Facades\View {}
================================================
FILE: globals/Vite.php
================================================
<?php
/**
* Vite
*
* @see \Illuminate\Foundation\Vite
*/
class Vite extends Illuminate\Support\Facades\Vite {}
================================================
FILE: globals/Yaml.php
================================================
<?php
/**
* Yaml
*
* @see \October\Rain\Parse\Yaml
*/
class Yaml extends October\Rain\Support\Facades\Yaml {}
================================================
FILE: init/autoloader.php
================================================
<?php
use October\Rain\Composer\ClassLoader;
ClassLoader::configure(dirname(__DIR__, 4))
->withNamespace('App\\', 'app')
->withDirectories([
'modules',
'plugins'
])
->register();
================================================
FILE: init/functions.php
================================================
<?php
use October\Rain\Support\Arr;
use October\Rain\Support\Str;
use October\Rain\Support\Collection;
if (!function_exists('input')) {
/**
* input returns all user input or the default value ($_POST + $_GET + $_FILES).
* Supports HTML Array names.
*
* $value = input('value', 'not found');
* $name = input('contact[name]');
* $name = input('contact[location][city]');
*
* Booleans are converted from string values.
* @param string $name
* @param string $default
* @return mixed
*/
function input($name = null, $default = null)
{
if ($name === null) {
return Request::all();
}
// Array field name, eg: field[key][key2][key3]
if (class_exists(\October\Rain\Html\Helper::class)) {
$name = October\Rain\Html\Helper::nameToDot($name);
}
return array_get(Request::all(), $name, $default);
}
}
if (!function_exists('post')) {
/**
* post is an identical function to input(), however restricted to POST methods ($_POST).
*/
function post($name = null, $default = null)
{
if (Request::getRealMethod() !== 'POST') {
return $default;
}
if ($name === null) {
return Request::post();
}
// Array field name, eg: field[key][key2][key3]
if (class_exists(\October\Rain\Html\Helper::class)) {
$name = October\Rain\Html\Helper::nameToDot($name);
}
return array_get(Request::post(), $name, $default);
}
}
if (!function_exists('get')) {
/**
* get is an identical function to input(), however restricted to GET values ($_GET).
*/
function get($name = null, $default = null)
{
if ($name === null) {
return Request::query();
}
// Array field name, eg: field[key][key2][key3]
if (class_exists(\October\Rain\Html\Helper::class)) {
$name = October\Rain\Html\Helper::nameToDot($name);
}
return array_get(Request::query(), $name, $default);
}
}
if (!function_exists('files')) {
/**
* files obtains a file item from the request ($_FILES).
*/
function files($name = null, $default = null)
{
if ($name === null) {
return Request::allFiles();
}
// Array field name, eg: field[key][key2][key3]
if (class_exists(\October\Rain\Html\Helper::class)) {
$name = October\Rain\Html\Helper::nameToDot($name);
}
return array_get(Request::allFiles(), $name, $default);
}
}
if (!function_exists('trace_log')) {
/**
* trace_log writes a trace message to a log file
*/
function trace_log()
{
$messages = func_get_args();
foreach ($messages as $message) {
$level = 'info';
if ($message instanceof Exception) {
$level = 'error';
}
elseif (is_array($message) || is_object($message)) {
$message = print_r($message, true);
}
Log::$level($message);
}
}
}
if (!function_exists('traceLog')) {
/**
* traceLog is an alias for trace_log()
*/
function traceLog()
{
call_user_func_array('trace_log', func_get_args());
}
}
if (!function_exists('trace_sql')) {
/**
* trace_sql begins to monitor all SQL output
* @return void
*/
function trace_sql()
{
if (!defined('OCTOBER_NO_EVENT_LOGGING')) {
define('OCTOBER_NO_EVENT_LOGGING', 1);
}
if (!defined('OCTOBER_TRACING_SQL')) {
define('OCTOBER_TRACING_SQL', 1);
}
else {
return;
}
Event::listen('illuminate.query', function ($query, $bindings, $time, $name) {
$data = compact('bindings', 'time', 'name');
foreach ($bindings as $i => $binding) {
if ($binding instanceof \DateTime) {
$bindings[$i] = $binding->format('\'Y-m-d H:i:s\'');
}
elseif (is_string($binding)) {
$bindings[$i] = "'$binding'";
}
}
$query = str_replace(['%', '?'], ['%%', '%s'], $query);
$query = vsprintf($query, $bindings);
Log::info($query);
});
}
}
if (!function_exists('traceSql')) {
/**
* traceSql is an alias for trace_sql()
* @return void
*/
function traceSql()
{
trace_sql();
}
}
if (!function_exists('traceBack')) {
/**
* traceBack is an alias for trace_back()
*/
function traceBack(int $distance = 25)
{
trace_back($distance);
}
}
if (!function_exists('trace_back')) {
/**
* trace_back logs a simple backtrace from the call point
* @return void
*/
function trace_back(int $distance = 25)
{
trace_log(debug_backtrace(2, $distance));
}
}
if (!function_exists('plugins_path')) {
/**
* plugins_path gets the path to the plugins folder
* @param string $path
* @return string
*/
function plugins_path($path = '')
{
return app('path.plugins').($path ? '/'.$path : $path);
}
}
if (!function_exists('cache_path')) {
/**
* cache_path gets the path to the cache folder
* @param string $path
* @return string
*/
function cache_path($path = '')
{
return app('path.cache').($path ? '/'.$path : $path);
}
}
if (!function_exists('themes_path')) {
/**
* themes_path gets the path to the themes folder
* @param string $path
* @return string
*/
function themes_path($path = '')
{
return app('path.themes').($path ? '/'.$path : $path);
}
}
if (!function_exists('temp_path')) {
/**
* temp_path gets the path to the temporary storage folder
* @param string $path
* @return string
*/
function temp_path($path = '')
{
return app('path.temp').($path ? '/'.$path : $path);
}
}
if (!function_exists('e')) {
/**
* e will encode HTML special characters in a string
* @param \Illuminate\Contracts\Support\Htmlable|string $value
* @param bool $doubleEncode
* @return string
*/
function e($value, $doubleEncode = false)
{
if ($value instanceof \Illuminate\Contracts\Support\Htmlable) {
return $value->toHtml();
}
return htmlspecialchars((string) $value, ENT_QUOTES, 'UTF-8', $doubleEncode);
}
}
if (!function_exists('trans')) {
/**
* trans translates the given message
* @param string $id
* @param array $parameters
* @param string $locale
* @return string
*/
function trans($id = null, $parameters = [], $locale = null)
{
return app('translator')->trans($id, $parameters, $locale);
}
}
if (!function_exists('array_build')) {
/**
* array_build builds a new array using a callback
* @param array $array
* @param callable $callback
* @return array
*/
function array_build($array, callable $callback)
{
return Arr::build($array, $callback);
}
}
if (!function_exists('collect')) {
/**
* collect creates a collection from the given value
* @param mixed $value
* @return \October\Rain\Support\Collection
*/
function collect($value = null)
{
return new Collection($value);
}
}
if (!function_exists('array_add')) {
/**
* array_add adds an element to an array using "dot" notation if it doesn't exist
* @param array $array
* @param string $key
* @param mixed $value
* @return array
*/
function array_add($array, $key, $value)
{
return Arr::add($array, $key, $value);
}
}
if (!function_exists('array_collapse')) {
/**
* array_collapse collapses an array of arrays into a single array
* @param array $array
* @return array
*/
function array_collapse($array)
{
return Arr::collapse($array);
}
}
if (!function_exists('array_divide')) {
/**
* array_divide divides an array into two arrays. One with keys and the other with values
* @param array $array
* @return array
*/
function array_divide($array)
{
return Arr::divide($array);
}
}
if (!function_exists('array_dot')) {
/**
* array_dot flattens a multi-dimensional associative array with dots
* @param array $array
* @param string $prepend
* @return array
*/
function array_dot($array, $prepend = '')
{
return Arr::dot($array, $prepend);
}
}
if (!function_exists('array_except')) {
/**
* array_except gets all of the given array except for a specified array of keys
* @param array $array
* @param array|string $keys
* @return array
*/
function array_except($array, $keys)
{
return Arr::except($array, $keys);
}
}
if (!function_exists('array_flatten')) {
/**
* array_flatten flattens a multi-dimensional array into a single level
* @param array $array
* @param int $depth
* @return array
*/
function array_flatten($array, $depth = PHP_INT_MAX)
{
return Arr::flatten($array, $depth);
}
}
if (!function_exists('array_forget')) {
/**
* array_forget removes one or many array items from a given array using "dot" notation
* @param array $array
* @param array|string $keys
* @return void
*/
function array_forget(&$array, $keys)
{
Arr::forget($array, $keys);
}
}
if (!function_exists('array_get')) {
/**
* array_get gets an item from an array using "dot" notation
* @param \ArrayAccess|array $array
* @param string|int $key
* @param mixed $default
* @return mixed
*/
function array_get($array, $key, $default = null)
{
return Arr::get($array, $key, $default);
}
}
if (!function_exists('array_has')) {
/**
* array_has checks if an item or items exist in an array using "dot" notation
* @param \ArrayAccess|array $array
* @param string|array $keys
* @return bool
*/
function array_has($array, $keys)
{
return Arr::has($array, $keys);
}
}
if (!function_exists('array_only')) {
/**
* array_only gets a subset of the items from the given array
* @param array $array
* @param array|string $keys
* @return array
*/
function array_only($array, $keys)
{
return Arr::only($array, $keys);
}
}
if (!function_exists('array_pluck')) {
/**
* array_pluck plucks an array of values from an array
* @param array $array
* @param string|array $value
* @param string|array|null $key
* @return array
*/
function array_pluck($array, $value, $key = null)
{
return Arr::pluck($array, $value, $key);
}
}
if (!function_exists('array_prepend')) {
/**
* array_prepend pushes an item onto the beginning of an array
* @param array $array
* @param mixed $value
* @param mixed $key
* @return array
*/
function array_prepend($array, $value, $key = null)
{
return Arr::prepend($array, $value, $key);
}
}
if (!function_exists('array_pull')) {
/**
* array_pull gets a value from the array, and remove it
* @param array $array
* @param string $key
* @param mixed $default
* @return mixed
*/
function array_pull(&$array, $key, $default = null)
{
return Arr::pull($array, $key, $default);
}
}
if (!function_exists('array_random')) {
/**
* array_random gets a random value from an array
* @param array $array
* @param int|null $num
* @return mixed
*/
function array_random($array, $num = null)
{
return Arr::random($array, $num);
}
}
if (!function_exists('array_set')) {
/**
* array_set sets an array item to a given value using "dot" notation
* If no key is given to the method, the entire array will be replaced.
* @param array $array
* @param string $key
* @param mixed $value
* @return array
*/
function array_set(&$array, $key, $value)
{
return Arr::set($array, $key, $value);
}
}
if (!function_exists('array_sort')) {
/**
* array_sort sorts the array by the given callback or attribute name
* @param array $array
* @param callable|string|null $callback
* @return array
*/
function array_sort($array, $callback = null)
{
return Arr::sort($array, $callback);
}
}
if (!function_exists('array_sort_recursive')) {
/**
* array_sort_recursive recursively sort an array by keys and values
* @param array $array
* @return array
*/
function array_sort_recursive($array)
{
return Arr::sortRecursive($array);
}
}
if (!function_exists('array_where')) {
/**
* array_where filters the array using the given callback
* @param array $array
* @param callable $callback
* @return array
*/
function array_where($array, callable $callback)
{
return Arr::where($array, $callback);
}
}
if (!function_exists('array_wrap')) {
/**
* array_wrap if the given value is not an array, wrap it in one
* @param mixed $value
* @return array
*/
function array_wrap($value)
{
return Arr::wrap($value);
}
}
if (!function_exists('camel_case')) {
/**
* camel_case converts a value to camel case
* @param string $value
* @return string
*/
function camel_case($value)
{
return Str::camel($value);
}
}
if (!function_exists('kebab_case')) {
/**
* kebab_case converts a string to kebab case
* @param string $value
* @return string
*/
function kebab_case($value)
{
return Str::kebab($value);
}
}
if (!function_exists('snake_case')) {
/**
* snake_case converts a string to snake case
* @param string $value
* @param string $delimiter
* @return string
*/
function snake_case($value, $delimiter = '_')
{
return Str::snake($value, $delimiter);
}
}
if (!function_exists('str_after')) {
/**
* str_after returns the remainder of a string after a given value
* @param string $subject
* @param string $search
* @return string
*/
function str_after($subject, $search)
{
return Str::after($subject, $search);
}
}
if (!function_exists('str_before')) {
/**
* str_before get the portion of a string before a given value
* @param string $subject
* @param string $search
* @return string
*/
function str_before($subject, $search)
{
return Str::before($subject, $search);
}
}
if (!function_exists('str_finish')) {
/**
* str_finish caps a string with a single instance of a given value
* @param string $value
* @param string $cap
* @return string
*/
function str_finish($value, $cap)
{
return Str::finish($value, $cap);
}
}
if (!function_exists('str_is')) {
/**
* str_is determines if a given string matches a given pattern
* @param string|array $pattern
* @param string $value
* @return bool
*/
function str_is($pattern, $value)
{
return Str::is($pattern, $value);
}
}
if (!function_exists('str_limit')) {
/**
* str_limit limits the number of characters in a string
* @param string $value
* @param int $limit
* @param string $end
* @return string
*/
function str_limit($value, $limit = 100, $end = '...')
{
return Str::limit($value, $limit, $end);
}
}
if (!function_exists('str_plural')) {
/**
* str_plural get the plural form of an English word
* @param string $value
* @param int $count
* @return string
*/
function str_plural($value, $count = 2)
{
return Str::plural($value, $count);
}
}
if (!function_exists('str_random')) {
/**
* str_random generates a more truly "random" alpha-numeric string
* @param int $length
* @return string
*
* @throws \RuntimeException
*/
function str_random($length = 16)
{
return Str::random($length);
}
}
if (!function_exists('str_replace_array')) {
/**
* str_replace_array replaces a given value in the string sequentially with an array
* @param string $search
* @param array $replace
* @param string $subject
* @return string
*/
function str_replace_array($search, array $replace, $subject)
{
return Str::replaceArray($search, $replace, $subject);
}
}
if (!function_exists('str_replace_first')) {
/**
* str_replace_first replaces the first occurrence of a given value in the string
* @param string $search
* @param string $replace
* @param string $subject
* @return string
*/
function str_replace_first($search, $replace, $subject)
{
return Str::replaceFirst($search, $replace, $subject);
}
}
if (!function_exists('str_replace_last')) {
/**
* str_replace_last replaces the last occurrence of a given value in the string
* @param string $search
* @param string $replace
* @param string $subject
* @return string
*/
function str_replace_last($search, $replace, $subject)
{
return Str::replaceLast($search, $replace, $subject);
}
}
if (!function_exists('str_singular')) {
/**
* str_singular get the singular form of an English word
* @param string $value
* @return string
*/
function str_singular($value)
{
return Str::singular($value);
}
}
if (!function_exists('str_slug')) {
/**
* str_slug generates a URL friendly "slug" from a given string
* @param string $title
* @param string $separator
* @param string $language
* @return string
*/
function str_slug($title, $separator = '-', $language = 'en')
{
return Str::slug($title, $separator, $language);
}
}
if (!function_exists('str_start')) {
/**
* str_start begins a string with a single instance of a given value
* @param string $value
* @param string $prefix
* @return string
*/
function str_start($value, $prefix)
{
return Str::start($value, $prefix);
}
}
if (!function_exists('studly_case')) {
/**
* studly_case converts a value to studly caps case
* @param string $value
* @return string
*/
function studly_case($value)
{
return Str::studly($value);
}
}
if (!function_exists('title_case')) {
/**
* title_case converts a value to title case
* @param string $value
* @return string
*/
function title_case($value)
{
return Str::title($value);
}
}
if (!function_exists('link_to')) {
/**
* Generate a HTML link.
*
* @param string $url
* @param string $title
* @param array $attributes
* @param bool $secure
* @return string
*/
function link_to($url, $title = null, $attributes = [], $secure = null)
{
return app('html')->link($url, $title, $attributes, $secure);
}
}
if (!function_exists('link_to_asset')) {
/**
* Generate a HTML link to an asset.
*
* @param string $url
* @param string $title
* @param array $attributes
* @param bool $secure
* @return string
*/
function link_to_asset($url, $title = null, $attributes = [], $secure = null)
{
return app('html')->linkAsset($url, $title, $attributes, $secure);
}
}
if (!function_exists('link_to_route')) {
/**
* Generate a HTML link to a named route.
*
* @param string $name
* @param string $title
* @param array $parameters
* @param array $attributes
* @return string
*/
function link_to_route($name, $title = null, $parameters = [], $attributes = [])
{
return app('html')->linkRoute($name, $title, $parameters, $attributes);
}
}
if (!function_exists('link_to_action')) {
/**
* Generate a HTML link to a controller action.
*
* @param string $action
* @param string $title
* @param array $parameters
* @param array $attributes
* @return string
*/
function link_to_action($action, $title = null, $parameters = [], $attributes = [])
{
return app('html')->linkAction($action, $title, $parameters, $attributes);
}
}
if (!function_exists('starts_with')) {
/**
* @deprecated use str_starts_with
*/
function starts_with($haystack, $needles)
{
return Str::startsWith($haystack, $needles);
}
}
if (!function_exists('ends_with')) {
/**
* @deprecated use str_ends_with
*/
function ends_with($haystack, $needles)
{
return Str::endsWith($haystack, $needles);
}
}
if (!function_exists('asset_version')) {
/**
* asset_version takes a disk path, resolves it to a public URL, and appends
* a cache-busting version query string based on the file's modification time.
*
* Supports path symbols: ~ (base), $ (plugins), # (themes)
*
* asset_version('~/themes/demo/assets/js/app.js')
* // → http://localhost/themes/demo/assets/js/app.js?v1a2b3c4d
*
* @param string $path
* @return string
*/
function asset_version(string $path): string
{
return Url::assetVersion($path);
}
}
================================================
FILE: init/init.php
================================================
<?php
require __DIR__ . '/autoloader.php';
require __DIR__ . '/functions.php';
require __DIR__ . '/polyfills.php';
================================================
FILE: init/polyfills.php
================================================
<?php
/**
* URL constants as defined in the PHP Manual under "Constants usable with
* http_build_url()".
*
* @see http://us2.php.net/manual/en/http.constants.php#http.constants.url
*/
if (!defined('HTTP_URL_REPLACE')) {
define('HTTP_URL_REPLACE', 1);
}
if (!defined('HTTP_URL_JOIN_PATH')) {
define('HTTP_URL_JOIN_PATH', 2);
}
if (!defined('HTTP_URL_JOIN_QUERY')) {
define('HTTP_URL_JOIN_QUERY', 4);
}
if (!defined('HTTP_URL_STRIP_USER')) {
define('HTTP_URL_STRIP_USER', 8);
}
if (!defined('HTTP_URL_STRIP_PASS')) {
define('HTTP_URL_STRIP_PASS', 16);
}
if (!defined('HTTP_URL_STRIP_AUTH')) {
define('HTTP_URL_STRIP_AUTH', 32);
}
if (!defined('HTTP_URL_STRIP_PORT')) {
define('HTTP_URL_STRIP_PORT', 64);
}
if (!defined('HTTP_URL_STRIP_PATH')) {
define('HTTP_URL_STRIP_PATH', 128);
}
if (!defined('HTTP_URL_STRIP_QUERY')) {
define('HTTP_URL_STRIP_QUERY', 256);
}
if (!defined('HTTP_URL_STRIP_FRAGMENT')) {
define('HTTP_URL_STRIP_FRAGMENT', 512);
}
if (!defined('HTTP_URL_STRIP_ALL')) {
define('HTTP_URL_STRIP_ALL', 1024);
}
if (!function_exists('http_build_url')) {
/**
* Build a URL.
*
* The parts of the second URL will be merged into the first according to
* the flags argument.
*
* @see https://github.com/jakeasmith/http_build_url
*
* @param mixed $url (part(s) of) an URL in form of a string or
* associative array like parse_url() returns
* @param mixed $parts same as the first argument
* @param int $flags a bitmask of binary or'ed HTTP_URL constants;
* HTTP_URL_REPLACE is the default
* @param array $new_url if set, it will be filled with the parts of the
* composed url like parse_url() would return
* @author Jake A. Smith
* @return string
*/
function http_build_url($url, $replace = [], $flags = HTTP_URL_REPLACE, &$newUrl = []): string
{
if (is_string($url)) {
$url = parse_url($url);
}
if (is_string($replace)) {
$replace = parse_url($replace);
}
$urlSegments = ['scheme', 'host', 'user', 'pass', 'port', 'path', 'query', 'fragment'];
// Set flags - HTTP_URL_STRIP_ALL and HTTP_URL_STRIP_AUTH cover several other flags.
if ($flags & HTTP_URL_STRIP_ALL) {
$flags |= HTTP_URL_STRIP_USER
| HTTP_URL_STRIP_PASS
| HTTP_URL_STRIP_PORT
| HTTP_URL_STRIP_PATH
| HTTP_URL_STRIP_QUERY
| HTTP_URL_STRIP_FRAGMENT;
} elseif ($flags & HTTP_URL_STRIP_AUTH) {
$flags |= HTTP_URL_STRIP_USER
| HTTP_URL_STRIP_PASS;
}
// Filter $url and $replace arrays to strip out unknown segments
array_change_key_case($url, CASE_LOWER);
array_change_key_case($replace, CASE_LOWER);
$url = array_filter($url, function ($value, $key) use ($urlSegments) {
return (in_array($key, $urlSegments) && isset($value));
}, ARRAY_FILTER_USE_BOTH);
$replace = array_filter($replace, function ($value, $key) use ($urlSegments) {
return (in_array($key, $urlSegments) && isset($value));
}, ARRAY_FILTER_USE_BOTH);
// Replace URL parts if required
if ($flags & HTTP_URL_REPLACE) {
$url = array_replace($url, $replace);
} else {
// Process joined paths
if (($flags & HTTP_URL_JOIN_PATH) && isset($replace['path'])) {
$urlPath = (isset($url['path'])) ? explode('/', trim($url['path'], '/')) : [];
$joinedPath = explode('/', trim($replace['path'], '/'));
$url['path'] = '/' . implode('/', array_merge($urlPath, $joinedPath));
}
// Process joined query string
if (($flags & HTTP_URL_JOIN_QUERY) && isset($replace['query'])) {
$urlQuery = $joinedQuery = [];
parse_str($url['query'] ?? '', $urlQuery);
parse_str($replace['query'] ?? '', $joinedQuery);
$url['query'] = http_build_query(array_replace_recursive($urlQuery, $joinedQuery));
}
}
// Strip segments as necessary
foreach ($urlSegments as $segment) {
$strip = 'HTTP_URL_STRIP_' . strtoupper($segment);
if (!defined($strip)) {
continue;
}
if ($flags & constant($strip)) {
unset($url[$segment]);
}
}
// Make new URL available
$newUrl = $url;
// Generate URL string
$urlString = '';
if (!empty($url['scheme'])) {
$urlString .= $url['scheme'] . '://';
}
if (!empty($url['user'])) {
$urlString .= $url['user'];
if (!empty($url['pass'])) {
$urlString .= ':' . $url['pass'];
}
$urlString .= '@';
}
if (!empty($url['host'])) {
$urlString .= $url['host'];
}
if (!empty($url['port'])) {
$urlString .= ':' . $url['port'];
}
if (!empty($url['path'])) {
$urlString .= ((substr($url['path'], 0, 1) !== '/') ? '/' : '') . $url['path'];
}
if (!empty($url['query'])) {
$urlString .= '?' . $url['query'];
}
if (!empty($url['fragment'])) {
$urlString .= '#' . $url['fragment'];
}
return $urlString;
}
}
================================================
FILE: init.php
================================================
<?php
require __DIR__ . '/init/autoloader.php';
require __DIR__ . '/init/functions.php';
require __DIR__ . '/init/polyfills.php';
================================================
FILE: phpbench.json
================================================
{
"$schema":"./vendor/phpbench/phpbench/phpbench.schema.json",
"runner.bootstrap": "vendor/autoload.php"
}
================================================
FILE: phpcs.xml
================================================
<?xml version="1.0"?>
<ruleset name="October CMS">
<description>The coding standard for October CMS.</description>
<rule ref="PSR2">
<!--
Exceptions to the PSR-2 guidelines as per our Developer Guide:
https://octobercms.com/help/guidelines/developer#psr-exceptions
-->
<exclude name="PSR1.Methods.CamelCapsMethodName.NotCamelCaps" />
<exclude name="Squiz.ControlStructures.ControlSignature.SpaceAfterCloseBrace" />
<exclude name="PSR2.ControlStructures.ControlStructureSpacing.SpacingAfterOpenBrace" />
</rule>
<rule ref="PSR1.Classes.ClassDeclaration.MissingNamespace">
<!--
Migrations and tests do not need a namespace defined
-->
<exclude-pattern>*/src/Auth/Migrations/*\.php</exclude-pattern>
<exclude-pattern>*/src/Database/Migrations/*\.php</exclude-pattern>
<exclude-pattern>*/tests/*</exclude-pattern>
</rule>
<rule ref="PSR1.Classes.ClassDeclaration.MultipleClasses">
<!--
Test fixtures and cases can have multiple classes defined, only if they are directly related to the test, or are
extended classes
-->
<exclude-pattern>*/tests/*</exclude-pattern>
</rule>
<file>src/</file>
<file>tests/</file>
<!-- Ignore vendor files -->
<exclude-pattern>*/vendor/*</exclude-pattern>
<!-- Ignore test config fixture -->
<exclude-pattern>*/tests/fixtures/config/sample-config.php</exclude-pattern>
</ruleset>
================================================
FILE: phpunit.xml
================================================
<?xml version="1.0" encoding="UTF-8"?>
<phpunit backupGlobals="false"
backupStaticAttributes="false"
colors="true"
convertErrorsToExceptions="true"
convertNoticesToExceptions="true"
convertWarningsToExceptions="true"
processIsolation="false"
stopOnFailure="false"
>
<testsuites>
<testsuite name="October Rain Test Suite">
<directory>./tests/**</directory>
</testsuite>
</testsuites>
</phpunit>
================================================
FILE: src/Assetic/Asset/AssetCache.php
================================================
<?php namespace October\Rain\Assetic\Asset;
use October\Rain\Assetic\Cache\CacheInterface;
use October\Rain\Assetic\Filter\FilterInterface;
use October\Rain\Assetic\Filter\HashableInterface;
/**
* AssetCache caches an asset to avoid the cost of loading and dumping.
*
* @author Kris Wallsmith <kris.wallsmith@gmail.com>
*/
class AssetCache implements AssetInterface
{
/**
* @var AssetInterface asset
*/
protected $asset;
/**
* @var CacheInterface cache
*/
protected $cache;
/**
* __construct
*/
public function __construct(AssetInterface $asset, CacheInterface $cache)
{
$this->asset = $asset;
$this->cache = $cache;
}
/**
* ensureFilter
*/
public function ensureFilter(FilterInterface $filter): void
{
$this->asset->ensureFilter($filter);
}
/**
* getFilters
*/
public function getFilters(): array
{
return $this->asset->getFilters();
}
/**
* clearFilters
*/
public function clearFilters(): void
{
$this->asset->clearFilters();
}
/**
* load
*/
public function load(?FilterInterface $additionalFilter = null): void
{
$cacheKey = self::getCacheKey($this->asset, $additionalFilter, 'load');
if ($this->cache->has($cacheKey)) {
$this->asset->setContent($this->cache->get($cacheKey));
return;
}
$this->asset->load($additionalFilter);
$this->cache->set($cacheKey, $this->asset->getContent());
}
/**
* dump
*/
public function dump(?FilterInterface $additionalFilter = null): string
{
$cacheKey = self::getCacheKey($this->asset, $additionalFilter, 'dump');
if ($this->cache->has($cacheKey)) {
return $this->cache->get($cacheKey);
}
$content = $this->asset->dump($additionalFilter);
$this->cache->set($cacheKey, $content);
return $content;
}
/**
* getContent
*/
public function getContent(): ?string
{
return $this->asset->getContent();
}
/**
* setContent
*/
public function setContent(?string $content): void
{
$this->asset->setContent($content);
}
/**
* getSourceRoot
*/
public function getSourceRoot(): ?string
{
return $this->asset->getSourceRoot();
}
/**
* getSourcePath
*/
public function getSourcePath(): ?string
{
return $this->asset->getSourcePath();
}
/**
* getSourceDirectory
*/
public function getSourceDirectory(): ?string
{
return $this->asset->getSourceDirectory();
}
/**
* getTargetPath
*/
public function getTargetPath(): ?string
{
return $this->asset->getTargetPath();
}
/**
* setTargetPath
*/
public function setTargetPath(?string $targetPath): void
{
$this->asset->setTargetPath($targetPath);
}
/**
* getLastModified
*/
public function getLastModified(): ?int
{
return $this->asset->getLastModified();
}
/**
* getVars
*/
public function getVars(): array
{
return $this->asset->getVars();
}
/**
* setValues
*/
public function setValues(array $values): void
{
$this->asset->setValues($values);
}
/**
* getValues
*/
public function getValues(): array
{
return $this->asset->getValues();
}
/**
* getCacheKey returns a cache key for the current asset.
* The key is composed of everything but an asset's content:
*
* * source root
* * source path
* * target url
* * last modified
* * filters
*
* @param AssetInterface $asset The asset
* @param FilterInterface $additionalFilter Any additional filter being applied
* @param string $salt Salt for the key
*
* @return string A key for identifying the current asset
*/
protected static function getCacheKey(AssetInterface $asset, ?FilterInterface $additionalFilter = null, string $salt = ''): string
{
if ($additionalFilter) {
$asset = clone $asset;
$asset->ensureFilter($additionalFilter);
}
$cacheKey = $asset->getSourceRoot();
$cacheKey .= $asset->getSourcePath();
$cacheKey .= $asset->getTargetPath();
$cacheKey .= $asset->getLastModified();
foreach ($asset->getFilters() as $filter) {
if ($filter instanceof HashableInterface) {
$cacheKey .= $filter->hash();
}
else {
$cacheKey .= serialize($filter);
}
}
if ($values = $asset->getValues()) {
asort($values);
$cacheKey .= serialize($values);
}
return md5($cacheKey.$salt);
}
}
================================================
FILE: src/Assetic/Asset/AssetCollection.php
================================================
<?php namespace October\Rain\Assetic\Asset;
use October\Rain\Assetic\Asset\Iterator\AssetCollectionFilterIterator;
use October\Rain\Assetic\Asset\Iterator\AssetCollectionIterator;
use October\Rain\Assetic\Filter\FilterCollection;
use October\Rain\Assetic\Filter\FilterInterface;
use RecursiveIteratorIterator;
use InvalidArgumentException;
use IteratorAggregate;
use SplObjectStorage;
use Traversable;
/**
* AssetCollection
*
* @author Kris Wallsmith <kris.wallsmith@gmail.com>
*/
class AssetCollection implements IteratorAggregate, AssetCollectionInterface
{
/**
* @var array assets
*/
protected $assets;
/**
* @var FilterCollection filters
*/
protected $filters;
/**
* @var string|null sourceRoot
*/
protected $sourceRoot;
/**
* @var string|null targetPath
*/
protected $targetPath;
/**
* @var string|null content
*/
protected $content;
/**
* @var SplObjectStorage clones
*/
protected $clones;
/**
* @var array vars
*/
protected $vars;
/**
* @var array values
*/
protected $values;
/**
* __construct
*
* @param array $assets Assets for the current collection
* @param array $filters Filters for the current collection
* @param string $sourceRoot The root directory
* @param array $vars
*/
public function __construct(array $assets = [], array $filters = [], ?string $sourceRoot = null, array $vars = [])
{
$this->assets = [];
foreach ($assets as $asset) {
$this->add($asset);
}
$this->filters = new FilterCollection($filters);
$this->sourceRoot = $sourceRoot;
$this->clones = new SplObjectStorage();
$this->vars = $vars;
$this->values = [];
}
/**
* __clone
*/
public function __clone()
{
$this->filters = clone $this->filters;
$this->clones = new SplObjectStorage();
}
/**
* all
*/
public function all(): array
{
return $this->assets;
}
/**
* add
*/
public function add(AssetInterface $asset): void
{
$this->assets[] = $asset;
}
/**
* removeLeaf
*/
public function removeLeaf(AssetInterface $needle, bool $graceful = false): bool
{
foreach ($this->assets as $i => $asset) {
$clone = isset($this->clones[$asset]) ? $this->clones[$asset] : null;
if (in_array($needle, [$asset, $clone], true)) {
unset($this->clones[$asset], $this->assets[$i]);
return true;
}
if ($asset instanceof AssetCollectionInterface && $asset->removeLeaf($needle, true)) {
return true;
}
}
if ($graceful) {
return false;
}
throw new InvalidArgumentException('Leaf not found.');
}
/**
* replaceLeaf
*/
public function replaceLeaf(AssetInterface $needle, AssetInterface $replacement, bool $graceful = false): bool
{
foreach ($this->assets as $i => $asset) {
$clone = isset($this->clones[$asset]) ? $this->clones[$asset] : null;
if (in_array($needle, [$asset, $clone], true)) {
unset($this->clones[$asset]);
$this->assets[$i] = $replacement;
return true;
}
if ($asset instanceof AssetCollectionInterface && $asset->replaceLeaf($needle, $replacement, true)) {
return true;
}
}
if ($graceful) {
return false;
}
throw new InvalidArgumentException('Leaf not found.');
}
/**
* ensureFilter
*/
public function ensureFilter(FilterInterface $filter): void
{
$this->filters->ensure($filter);
}
/**
* getFilters
*/
public function getFilters(): array
{
return $this->filters->all();
}
/**
* clearFilters
*/
public function clearFilters(): void
{
$this->filters->clear();
$this->clones = new SplObjectStorage();
}
/**
* load
*/
public function load(?FilterInterface $additionalFilter = null): void
{
// loop through leaves and load each asset
$parts = [];
foreach ($this as $asset) {
$asset->load($additionalFilter);
$parts[] = $asset->getContent();
}
$this->content = implode("\n", $parts);
}
/**
* dump
*/
public function dump(?FilterInterface $additionalFilter = null): string
{
// loop through leaves and dump each asset
$parts = [];
foreach ($this as $asset) {
$parts[] = $asset->dump($additionalFilter);
}
return implode("\n", $parts);
}
/**
* getContent
*/
public function getContent(): ?string
{
return $this->content;
}
/**
* setContent
*/
public function setContent(?string $content): void
{
$this->content = $content;
}
/**
* getSourceRoot
*/
public function getSourceRoot(): ?string
{
return $this->sourceRoot;
}
/**
* getSourcePath
*/
public function getSourcePath(): ?string
{
return null;
}
/**
* getSourceDirectory returns the first available source directory, useful
* when extracting imports and a singular collection is returned
*/
public function getSourceDirectory(): ?string
{
foreach ($this as $asset) {
return $asset->getSourceDirectory();
}
return null;
}
/**
* getTargetPath
*/
public function getTargetPath(): ?string
{
return $this->targetPath;
}
/**
* setTargetPath
*/
public function setTargetPath(?string $targetPath): void
{
$this->targetPath = $targetPath;
}
/**
* getLastModified returns the highest last-modified value of all assets in the current collection.
*
* @return int|null A UNIX timestamp
*/
public function getLastModified(): ?int
{
if (!count($this->assets)) {
return null;
}
$mtime = 0;
foreach ($this as $asset) {
$assetMtime = $asset->getLastModified();
if ($assetMtime > $mtime) {
$mtime = $assetMtime;
}
}
return $mtime;
}
/**
* getIterator returns an iterator for looping recursively over unique leaves.
*/
public function getIterator(): Traversable
{
return new RecursiveIteratorIterator(new AssetCollectionFilterIterator(new AssetCollectionIterator($this, $this->clones)));
}
/**
* getVars
*/
public function getVars(): array
{
return $this->vars;
}
/**
* setValues
*/
public function setValues(array $values): void
{
$this->values = $values;
foreach ($this as $asset) {
$asset->setValues(array_intersect_key($values, array_flip($asset->getVars())));
}
}
/**
* getValues
*/
public function getValues(): array
{
return $this->values;
}
}
================================================
FILE: src/Assetic/Asset/AssetCollectionInterface.php
================================================
<?php namespace October\Rain\Assetic\Asset;
/**
* AssetCollectionInterface is an asset collection.
*
* @author Kris Wallsmith <kris.wallsmith@gmail.com>
*/
interface AssetCollectionInterface extends AssetInterface, \Traversable
{
/**
* Returns all child assets.
*
* @return array An array of AssetInterface objects
*/
public function all(): array;
/**
* Adds an asset to the current collection.
*
* @param AssetInterface $asset An asset
*/
public function add(AssetInterface $asset): void;
/**
* Removes a leaf.
*
* @param AssetInterface $leaf The leaf to remove
* @param bool $graceful Whether the failure should return false or throw an exception
*
* @return bool Whether the asset has been found
*
* @throws \InvalidArgumentException If the asset cannot be found
*/
public function removeLeaf(AssetInterface $leaf, bool $graceful = false): bool;
/**
* Replaces an existing leaf with a new one.
*
* @param AssetInterface $needle The current asset to replace
* @param AssetInterface $replacement The new asset
* @param bool $graceful Whether the failure should return false or throw an exception
*
* @return bool Whether the asset has been found
*
* @throws \InvalidArgumentException If the asset cannot be found
*/
public function replaceLeaf(AssetInterface $needle, AssetInterface $replacement, bool $graceful = false): bool;
}
================================================
FILE: src/Assetic/Asset/AssetInterface.php
================================================
<?php namespace October\Rain\Assetic\Asset;
use October\Rain\Assetic\Filter\FilterInterface;
/**
* AssetInterface is an asset has a mutable URL and content and can be loaded and dumped.
*
* @author Kris Wallsmith <kris.wallsmith@gmail.com>
*/
interface AssetInterface
{
/**
* Ensures the current asset includes the supplied filter.
*
* @param FilterInterface $filter A filter
*/
public function ensureFilter(FilterInterface $filter): void;
/**
* Returns an array of filters currently applied.
*
* @return array An array of filters
*/
public function getFilters(): array;
/**
* Clears all filters from the current asset.
*/
public function clearFilters(): void;
/**
* Loads the asset into memory and applies load filters.
*
* You may provide an additional filter to apply during load.
*
* @param FilterInterface $additionalFilter An additional filter
*/
public function load(?FilterInterface $additionalFilter = null): void;
/**
* Applies dump filters and returns the asset as a string.
*
* You may provide an additional filter to apply during dump.
*
* Dumping an asset should not change its state.
*
* If the current asset has not been loaded yet, it should be
* automatically loaded at this time.
*
* @param FilterInterface $additionalFilter An additional filter
*
* @return string The filtered content of the current asset
*/
public function dump(?FilterInterface $additionalFilter = null): string;
/**
* Returns the loaded content of the current asset.
*
* @return string|null The content
*/
public function getContent(): ?string;
/**
* Sets the content of the current asset.
*
* Filters can use this method to change the content of the asset.
*
* @param string|null $content The asset content
*/
public function setContent(?string $content): void;
/**
* Returns an absolute path or URL to the source asset's root directory.
*
* This value should be an absolute path to a directory in the filesystem,
* an absolute URL with no path, or null.
*
* For example:
*
* * '/path/to/web'
* * 'http://example.com'
* * null
*
* @return string|null The asset's root
*/
public function getSourceRoot(): ?string;
/**
* Returns the relative path for the source asset.
*
* This value can be combined with the asset's source root (if both are
* non-null) to get something compatible with file_get_contents().
*
* For example:
*
* * 'js/main.js'
* * 'main.js'
* * null
*
* @return string|null The source asset path
*/
public function getSourcePath(): ?string;
/**
* Returns the asset's source directory.
*
* The source directory is the directory the asset was located in
* and can be used to resolve references relative to an asset.
*
* @return string|null The asset's source directory
*/
public function getSourceDirectory(): ?string;
/**
* Returns the URL for the current asset.
*
* @return string|null A web URL where the asset will be dumped
*/
public function getTargetPath(): ?string;
/**
* Sets the URL for the current asset.
*
* @param string|null $targetPath A web URL where the asset will be dumped
*/
public function setTargetPath(?string $targetPath): void;
/**
* Returns the time the current asset was last modified.
*
* @return int|null A UNIX timestamp
*/
public function getLastModified(): ?int;
/**
* Returns an array of variable names for this asset.
*
* @return array
*/
public function getVars(): array;
/**
* Sets the values for the asset's variables.
*
* @param array $values
*/
public function setValues(array $values): void;
/**
* Returns the current values for this asset.
*
* @return array an array of strings
*/
public function getValues(): array;
}
================================================
FILE: src/Assetic/Asset/BaseAsset.php
================================================
<?php namespace October\Rain\Assetic\Asset;
use October\Rain\Assetic\Filter\FilterCollection;
use October\Rain\Assetic\Filter\FilterInterface;
/**
* A base abstract asset.
*
* The methods load() and getLastModified() are left undefined, although a
* reusable doLoad() method is available to child classes.
*
* @author Kris Wallsmith <kris.wallsmith@gmail.com>
*/
abstract class BaseAsset implements AssetInterface
{
/**
* @var FilterCollection filters
*/
protected $filters;
/**
* @var string|null sourceRoot
*/
protected $sourceRoot;
/**
* @var string|null sourcePath
*/
protected $sourcePath;
/**
* @var string|null sourceDir
*/
protected $sourceDir;
/**
* @var string|null targetPath
*/
protected $targetPath;
/**
* @var string|null content
*/
protected $content;
/**
* @var bool loaded
*/
protected $loaded;
/**
* @var array vars
*/
protected $vars;
/**
* @var array values
*/
protected $values;
/**
* __construct
*
* @param array $filters Filters for the asset
* @param string $sourceRoot The root directory
* @param string $sourcePath The asset path
* @param array $vars
*/
public function __construct(array $filters = [], ?string $sourceRoot = null, ?string $sourcePath = null, array $vars = [])
{
$this->filters = new FilterCollection($filters);
$this->sourceRoot = $sourceRoot;
$this->sourcePath = $sourcePath;
if ($sourcePath && $sourceRoot) {
$this->sourceDir = dirname("$sourceRoot/$sourcePath");
}
$this->vars = $vars;
$this->values = [];
$this->loaded = false;
}
public function __clone()
{
$this->filters = clone $this->filters;
}
public function ensureFilter(FilterInterface $filter): void
{
$this->filters->ensure($filter);
}
public function getFilters(): array
{
return $this->filters->all();
}
public function clearFilters(): void
{
$this->filters->clear();
}
/**
* Encapsulates asset loading logic.
*
* @param string $content The asset content
* @param FilterInterface $additionalFilter An additional filter
*/
protected function doLoad(?string $content, ?FilterInterface $additionalFilter = null): void
{
$filter = clone $this->filters;
if ($additionalFilter) {
$filter->ensure($additionalFilter);
}
$asset = clone $this;
$asset->setContent($content);
$filter->filterLoad($asset);
$this->content = $asset->getContent();
$this->loaded = true;
}
public function dump(?FilterInterface $additionalFilter = null): string
{
if (!$this->loaded) {
$this->load();
}
$filter = clone $this->filters;
if ($additionalFilter) {
$filter->ensure($additionalFilter);
}
$asset = clone $this;
$filter->filterDump($asset);
return $asset->getContent() ?? '';
}
public function getContent(): ?string
{
return $this->content;
}
public function setContent(?string $content): void
{
$this->content = $content;
}
public function getSourceRoot(): ?string
{
return $this->sourceRoot;
}
public function getSourcePath(): ?string
{
return $this->sourcePath;
}
public function getSourceDirectory(): ?string
{
return $this->sourceDir;
}
public function getTargetPath(): ?string
{
return $this->targetPath;
}
public function setTargetPath(?string $targetPath): void
{
if ($this->vars) {
foreach ($this->vars as $var) {
if (false === strpos($targetPath, $var)) {
throw new \RuntimeException(sprintf('The asset target path "%s" must contain the variable "{%s}".', $targetPath, $var));
}
}
}
$this->targetPath = $targetPath;
}
public function getVars(): array
{
return $this->vars;
}
public function setValues(array $values): void
{
foreach ($values as $var => $v) {
if (!in_array($var, $this->vars, true)) {
throw new \InvalidArgumentException(sprintf('The asset with source path "%s" has no variable named "%s".', $this->sourcePath, $var));
}
}
$this->values = $values;
$this->loaded = false;
}
public function getValues(): array
{
return $this->values;
}
}
================================================
FILE: src/Assetic/Asset/FileAsset.php
================================================
<?php namespace October\Rain\Assetic\Asset;
use File;
use October\Rain\Assetic\Filter\FilterInterface;
use October\Rain\Assetic\Util\VarUtils;
use InvalidArgumentException;
use RuntimeException;
/**
* FileAsset represents an asset loaded from a file.
*
* @author Kris Wallsmith <kris.wallsmith@gmail.com>
*/
class FileAsset extends BaseAsset
{
/**
* @var string source path
*/
protected $source;
/**
* __construct.
*
* @param string $source An absolute path
* @param array $filters An array of filters
* @param string $sourceRoot The source asset root directory
* @param string $sourcePath The source asset path
* @param array $vars
*
* @throws InvalidArgumentException If the supplied root doesn't match the source when guessing the path
*/
public function __construct(string $source, array $filters = [], ?string $sourceRoot = null, ?string $sourcePath = null, array $vars = [])
{
if ($sourceRoot === null) {
$sourceRoot = dirname($source);
if ($sourcePath === null) {
$sourcePath = basename($source);
}
}
elseif ($sourcePath === null) {
if (strpos($source, $sourceRoot) !== 0) {
throw new InvalidArgumentException(sprintf('The source "%s" is not in the root directory "%s"', $source, $sourceRoot));
}
$sourcePath = substr($source, strlen($sourceRoot) + 1);
}
$this->source = $source;
parent::__construct($filters, $sourceRoot, $sourcePath, $vars);
}
/**
* load
*/
public function load(?FilterInterface $additionalFilter = null): void
{
$source = VarUtils::resolve($this->source, $this->getVars(), $this->getValues());
if (!is_file($source)) {
throw new RuntimeException(sprintf('The source file "%s" does not exist.', File::nicePath($source)));
}
$this->doLoad(file_get_contents($source), $additionalFilter);
}
/**
* getLastModified
*/
public function getLastModified(): ?int
{
$source = VarUtils::resolve($this->source, $this->getVars(), $this->getValues());
if (!is_file($source)) {
throw new RuntimeException(sprintf('The source file "%s" does not exist.', File::nicePath($source)));
}
return filemtime($source);
}
}
================================================
FILE: src/Assetic/Asset/GlobAsset.php
================================================
<?php namespace October\Rain\Assetic\Asset;
use October\Rain\Assetic\Filter\FilterInterface;
use October\Rain\Assetic\Util\VarUtils;
use Traversable;
/**
* GlobAsset is a collection of assets loaded by glob.
*
* @author Kris Wallsmith <kris.wallsmith@gmail.com>
*/
class GlobAsset extends AssetCollection
{
/**
* @var array globs
*/
protected $globs;
/**
* @var bool initialized
*/
protected $initialized;
/**
* __construct
*
* @param string|array $globs A single glob path or array of paths
* @param array $filters An array of filters
* @param string $root The root directory
* @param array $vars
*/
public function __construct($globs, array $filters = [], ?string $root = null, array $vars = [])
{
$this->globs = (array) $globs;
$this->initialized = false;
parent::__construct([], $filters, $root, $vars);
}
/**
* all
*/
public function all(): array
{
if (!$this->initialized) {
$this->initialize();
}
return parent::all();
}
/**
* load
*/
public function load(?FilterInterface $additionalFilter = null): void
{
if (!$this->initialized) {
$this->initialize();
}
parent::load($additionalFilter);
}
/**
* dump
*/
public function dump(?FilterInterface $additionalFilter = null): string
{
if (!$this->initialized) {
$this->initialize();
}
return parent::dump($additionalFilter);
}
/**
* getLastModified
*/
public function getLastModified(): ?int
{
if (!$this->initialized) {
$this->initialize();
}
return parent::getLastModified();
}
/**
* getIterator
*/
public function getIterator(): Traversable
{
if (!$this->initialized) {
$this->initialize();
}
return parent::getIterator();
}
/**
* setValues
*/
public function setValues(array $values): void
{
parent::setValues($values);
$this->initialized = false;
}
/**
* initialize the collection based on the glob(s) passed in.
*/
private function initialize()
{
foreach ($this->globs as $glob) {
$glob = VarUtils::resolve($glob, $this->getVars(), $this->getValues());
if (false !== $paths = glob($glob)) {
foreach ($paths as $path) {
if (is_file($path)) {
$asset = new FileAsset($path, [], $this->getSourceRoot(), null, $this->getVars());
$asset->setValues($this->getValues());
$this->add($asset);
}
}
}
}
$this->initialized = true;
}
}
================================================
FILE: src/Assetic/Asset/HttpAsset.php
================================================
<?php namespace October\Rain\Assetic\Asset;
use October\Rain\Assetic\Filter\FilterInterface;
use October\Rain\Assetic\Util\VarUtils;
use InvalidArgumentException;
use RuntimeException;
/**
* HttpAsset represents an asset loaded via an HTTP request.
*
* @author Kris Wallsmith <kris.wallsmith@gmail.com>
*/
class HttpAsset extends BaseAsset
{
/**
* @var string sourceUrl
*/
protected $sourceUrl;
/**
* @var bool ignoreErrors
*/
protected $ignoreErrors;
/**
* __construct.
*
* @param string $sourceUrl The source URL
* @param array $filters An array of filters
* @param bool $ignoreErrors
* @param array $vars
*
* @throws InvalidArgumentException If the first argument is not an URL
*/
public function __construct(string $sourceUrl, array $filters = [], bool $ignoreErrors = false, array $vars = [])
{
if (strpos($sourceUrl, '//') === 0) {
$sourceUrl = 'http:'.$sourceUrl;
}
elseif (strpos($sourceUrl, '://') === false) {
throw new InvalidArgumentException(sprintf('"%s" is not a valid URL.', $sourceUrl));
}
$this->sourceUrl = $sourceUrl;
$this->ignoreErrors = $ignoreErrors;
[$scheme, $url] = explode('://', $sourceUrl, 2);
[$host, $path] = explode('/', $url, 2);
parent::__construct($filters, $scheme.'://'.$host, $path, $vars);
}
/**
* load
*/
public function load(?FilterInterface $additionalFilter = null): void
{
$content = @file_get_contents(
VarUtils::resolve($this->sourceUrl, $this->getVars(), $this->getValues())
);
if (false === $content && !$this->ignoreErrors) {
throw new RuntimeException(sprintf('Unable to load asset from URL "%s"', $this->sourceUrl));
}
$this->doLoad($content, $additionalFilter);
}
/**
* getLastModified
*/
public function getLastModified(): ?int
{
if (false !== @file_get_contents($this->sourceUrl, false, stream_context_create(['http' => ['method' => 'HEAD']]))) {
foreach ($http_response_header as $header) {
if (stripos($header, 'Last-Modified: ') === 0) {
[, $mtime] = explode(':', $header, 2);
return strtotime(trim($mtime));
}
}
}
return null;
}
}
================================================
FILE: src/Assetic/Asset/Iterator/AssetCollectionFilterIterator.php
================================================
<?php namespace October\Rain\Assetic\Asset\Iterator;
use RecursiveFilterIterator;
/**
* AssetCollectionFilterIterator collection filter iterator.
*
* The filter iterator is responsible for de-duplication of leaf assets based
* on both strict equality and source URL.
*
* @author Kris Wallsmith <kris.wallsmith@gmail.com>
*/
class AssetCollectionFilterIterator extends RecursiveFilterIterator
{
protected $visited;
protected $sources;
/**
* Constructor.
*
* @param AssetCollectionIterator $iterator The inner iterator
* @param array $visited An array of visited asset objects
* @param array $sources An array of visited source strings
*/
public function __construct(AssetCollectionIterator $iterator, array $visited = [], array $sources = [])
{
parent::__construct($iterator);
$this->visited = $visited;
$this->sources = $sources;
}
/**
* Determines whether the current asset is a duplicate.
*
* De-duplication is performed based on either strict equality or by
* matching sources.
*
* @return Boolean Returns true if we have not seen this asset yet
*/
public function accept(): bool
{
$asset = $this->getInnerIterator()->current(true);
$duplicate = false;
// check strict equality
if (in_array($asset, $this->visited, true)) {
$duplicate = true;
} else {
$this->visited[] = $asset;
}
// check source
$sourceRoot = $asset->getSourceRoot();
$sourcePath = $asset->getSourcePath();
if ($sourceRoot && $sourcePath) {
$source = $sourceRoot.'/'.$sourcePath;
if (in_array($source, $this->sources)) {
$duplicate = true;
} else {
$this->sources[] = $source;
}
}
return !$duplicate;
}
/**
* Passes visited objects and source URLs to the child iterator.
*/
public function getChildren(): ?RecursiveFilterIterator
{
return new self($this->getInnerIterator()->getChildren(), $this->visited, $this->sources);
}
}
================================================
FILE: src/Assetic/Asset/Iterator/AssetCollectionIterator.php
================================================
<?php namespace October\Rain\Assetic\Asset\Iterator;
use October\Rain\Assetic\Asset\AssetCollectionInterface;
use RecursiveIterator;
use SplObjectStorage;
/**
* AssetCollectionIterator iterates over an asset collection.
*
* The iterator is responsible for cascading filters and target URL patterns
* from parent to child assets.
*
* @author Kris Wallsmith <kris.wallsmith@gmail.com>
*/
class AssetCollectionIterator implements RecursiveIterator
{
/**
* @var mixed assets
*/
protected $assets;
/**
* @var mixed filters
*/
protected $filters;
/**
* @var mixed vars
*/
protected $vars;
/**
* @var mixed output
*/
protected $output;
/**
* @var mixed clones
*/
protected $clones;
/**
* __construct
*/
public function __construct(AssetCollectionInterface $coll, SplObjectStorage $clones)
{
$this->assets = $coll->all();
$this->filters = $coll->getFilters();
$this->vars = $coll->getVars();
$this->output = $coll->getTargetPath();
$this->clones = $clones;
if (false === $pos = strrpos($this->output, '.')) {
$this->output .= '_*';
}
else {
$this->output = substr($this->output, 0, $pos).'_*'.substr($this->output, $pos);
}
}
/**
* Returns a copy of the current asset with filters and a target URL applied.
*
* @param bool $raw Returns the unmodified asset if true
*
* @return \October\Rain\Assetic\Asset\AssetInterface
*/
public function current($raw = false): mixed
{
$asset = current($this->assets);
if ($raw) {
return $asset;
}
// clone once
if (!isset($this->clones[$asset])) {
$clone = $this->clones[$asset] = clone $asset;
// generate a target path based on asset name
$name = sprintf('%s_%d', pathinfo($asset->getSourcePath(), PATHINFO_FILENAME) ?: 'part', $this->key() + 1);
$name = $this->removeDuplicateVar($name);
$clone->setTargetPath(str_replace('*', $name, $this->output));
} else {
$clone = $this->clones[$asset];
}
// cascade filters
foreach ($this->filters as $filter) {
$clone->ensureFilter($filter);
}
return $clone;
}
public function key(): mixed
{
return key($this->assets);
}
public function next(): void
{
next($this->assets);
}
public function rewind(): void
{
reset($this->assets);
}
public function valid(): bool
{
return current($this->assets) !== false;
}
public function hasChildren(): bool
{
return current($this->assets) instanceof AssetCollectionInterface;
}
/**
* @uses current()
*/
public function getChildren(): ?RecursiveIterator
{
return new self($this->current(), $this->clones);
}
private function removeDuplicateVar($name)
{
foreach ($this->vars as $var) {
$var = '{'.$var.'}';
if (false !== strpos($name, $var) && false !== strpos($this->output, $var)) {
$name = str_replace($var, '', $name);
}
}
return $name;
}
}
================================================
FILE: src/Assetic/Asset/StringAsset.php
================================================
<?php namespace October\Rain\Assetic\Asset;
use October\Rain\Assetic\Filter\FilterInterface;
/**
* StringAsset represents a string asset.
*
* @author Kris Wallsmith <kris.wallsmith@gmail.com>
*/
class StringAsset extends BaseAsset
{
/**
* @var string string
*/
private $string;
/**
* @var int|null lastModified
*/
private $lastModified;
/**
* __construct
*
* @param string $content The content of the asset
* @param array $filters Filters for the asset
* @param string $sourceRoot The source asset root directory
* @param string $sourcePath The source asset path
*/
public function __construct(string $content, array $filters = [], ?string $sourceRoot = null, ?string $sourcePath = null)
{
$this->string = $content;
parent::__construct($filters, $sourceRoot, $sourcePath);
}
/**
* load
*/
public function load(?FilterInterface $additionalFilter = null): void
{
$this->doLoad($this->string, $additionalFilter);
}
/**
* setLastModified
*/
public function setLastModified(?int $lastModified): void
{
$this->lastModified = $lastModified;
}
/**
* getLastModified
*/
public function getLastModified(): ?int
{
return $this->lastModified;
}
}
================================================
FILE: src/Assetic/AssetManager.php
================================================
<?php namespace October\Rain\Assetic;
use October\Rain\Assetic\Asset\AssetInterface;
use InvalidArgumentException;
/**
* AssetManager manages assets.
*
* @author Kris Wallsmith <kris.wallsmith@gmail.com>
*/
class AssetManager
{
/**
* @var array assets
*/
protected $assets = [];
/**
* get an asset by name.
*
* @param string $name The asset name
* @return AssetInterface The asset
* @throws InvalidArgumentException If there is no asset by that name
*/
public function get(string $name): AssetInterface
{
if (!isset($this->assets[$name])) {
throw new InvalidArgumentException(sprintf('There is no "%s" asset.', $name));
}
return $this->assets[$name];
}
/**
* has checks if the current asset manager has a certain asset.
*
* @param string $name an asset name
* @return bool True if the asset has been set, false if not
*/
public function has(string $name): bool
{
return isset($this->assets[$name]);
}
/**
* set registers an asset to the current asset manager.
*
* @param string $name The asset name
* @param AssetInterface $asset The asset
* @throws InvalidArgumentException If the asset name is invalid
*/
public function set(string $name, AssetInterface $asset): void
{
if (!ctype_alnum(str_replace('_', '', $name))) {
throw new InvalidArgumentException(sprintf('The name "%s" is invalid.', $name));
}
$this->assets[$name] = $asset;
}
/**
* getNames returns an array of asset names.
*
* @return array An array of asset names
*/
public function getNames(): array
{
return array_keys($this->assets);
}
/**
* clear clears all assets.
*/
public function clear(): void
{
$this->assets = [];
}
}
================================================
FILE: src/Assetic/AssetWriter.php
================================================
<?php namespace October\Rain\Assetic;
use October\Rain\Assetic\Asset\AssetInterface;
use October\Rain\Assetic\Util\VarUtils;
use InvalidArgumentException;
use RuntimeException;
/**
* AssetWriter writes assets to the filesystem.
*
* @author Kris Wallsmith <kris.wallsmith@gmail.com>
* @author Johannes M. Schmitt <schmittjoh@gmail.com>
*/
class AssetWriter
{
/**
* @var string dir
*/
protected $dir;
/**
* @var array values
*/
protected $values;
/**
* __construct
*
* @param string $dir
* @param array $values
* @throws InvalidArgumentException
*/
public function __construct(string $dir, array $values = [])
{
foreach ($values as $var => $vals) {
foreach ($vals as $value) {
if (!is_string($value)) {
throw new InvalidArgumentException(sprintf('All variable values must be strings, but got %s for variable "%s".', json_encode($value), $var));
}
}
}
$this->dir = $dir;
$this->values = $values;
}
/**
* writeManagerAssets
*/
public function writeManagerAssets(AssetManager $am): void
{
foreach ($am->getNames() as $name) {
$this->writeAsset($am->get($name));
}
}
/**
* writeAsset
*/
public function writeAsset(AssetInterface $asset): void
{
foreach (VarUtils::getCombinations($asset->getVars(), $this->values) as $combination) {
$asset->setValues($combination);
static::write(
$this->dir.'/'.VarUtils::resolve(
$asset->getTargetPath(),
$asset->getVars(),
$asset->getValues()
),
$asset->dump()
);
}
}
/**
* write
*/
protected static function write(string $path, string $contents): void
{
if (!is_dir($dir = dirname($path)) && false === @mkdir($dir, 0755, true)) {
throw new RuntimeException('Unable to create directory '.$dir);
}
if (false === @file_put_contents($path, $contents)) {
throw new RuntimeException('Unable to write file '.$path);
}
}
}
================================================
FILE: src/Assetic/AsseticServiceProvider.php
================================================
<?php namespace October\Rain\Assetic;
use Illuminate\Support\ServiceProvider;
use Illuminate\Contracts\Support\DeferrableProvider;
/**
* AsseticServiceProvider
*
* @package october/assetic
* @author Alexey Bobkov, Samuel Georges
*/
class AsseticServiceProvider extends ServiceProvider implements DeferrableProvider
{
/**
* Register the service provider.
*/
public function register(): void
{
$this->app->singleton('assetic', function ($app) {
$combiner = new Combiner;
$combiner->setStoragePath(storage_path('cms/combiner/assets'));
$combiner->registerDefaultFilters();
return $combiner;
});
}
/**
* Provides the returned services.
*/
public function provides(): array
{
return [
'assetic',
];
}
}
================================================
FILE: src/Assetic/Cache/CacheInterface.php
================================================
<?php namespace October\Rain\Assetic\Cache;
/**
* CacheInterface interface for a cache backend.
*
* @author Kris Wallsmith <kris.wallsmith@gmail.com>
*/
interface CacheInterface
{
/**
* Checks if the cache has a value for a key.
*
* @param string $key A unique key
*
* @return Boolean Whether the cache has a value for this key
*/
public function has($key);
/**
* Returns the value for a key.
*
* @param string $key A unique key
*
* @return string|null The value in the cache
*/
public function get($key);
/**
* Sets a value in the cache.
*
* @param string $key A unique key
* @param string $value The value to cache
*/
public function set($key, $value);
/**
* Removes a value from the cache.
*
* @param string $key A unique key
*/
public function remove($key);
}
================================================
FILE: src/Assetic/Cache/FilesystemCache.php
================================================
<?php namespace October\Rain\Assetic\Cache;
use File;
use October\Rain\Assetic\Cache\CacheInterface;
use RuntimeException;
/**
* Assetic Filesystem Cache
* Inherits the base logic except new files have permissions set.
*
* @package october/parse
* @author Alexey Bobkov, Samuel Georges
*/
class FilesystemCache implements CacheInterface
{
/**
* @var string dir name for the file cache
*/
protected $dir;
/**
* __construct
*/
public function __construct($dir)
{
$this->dir = $dir;
}
/**
* has
*/
public function has($key)
{
return file_exists($this->dir.'/'.$key);
}
/**
* get
*/
public function get($key)
{
$path = $this->dir.'/'.$key;
if (!file_exists($path)) {
throw new RuntimeException('There is no cached value for '.$key);
}
return file_get_contents($path);
}
/**
* set
*/
public function set($key, $value)
{
if (!is_dir($this->dir) && false === @mkdir($this->dir, 0755, true)) {
throw new RuntimeException('Unable to create directory '.$this->dir);
}
$path = $this->dir.'/'.$key;
if (false === @file_put_contents($path, $value)) {
throw new RuntimeException('Unable to write file '.$path);
}
File::chmod($path);
}
/**
* remove
*/
public function remove($key)
{
$path = $this->dir.'/'.$key;
if (file_exists($path) && false === @unlink($path)) {
throw new RuntimeException('Unable to remove file '.$path);
}
}
}
================================================
FILE: src/Assetic/Combiner.php
================================================
<?php namespace October\Rain\Assetic;
use File;
use October\Rain\Assetic\Asset\FileAsset;
use October\Rain\Assetic\Asset\AssetCache;
use October\Rain\Assetic\Asset\AssetCollection;
use October\Rain\Assetic\Cache\FilesystemCache;
/**
* Combiner helper class
*
* @package october/assetic
* @author Alexey Bobkov, Samuel Georges
*/
class Combiner
{
use \October\Rain\Assetic\Traits\HasDeepHasher;
/**
* @var string storagePath is the output folder for storing combined files.
*/
protected $storagePath;
/**
* @var string localPath is the local path context to find assets.
*/
protected $localPath;
/**
* @var array filters to apply to each file.
*/
protected $filters = [];
/**
* @var array prodFilters filters to apply in production
*/
protected $prodFilters = [];
/**
* parse
*/
public function parse(array $assets, array $options = []): string
{
return $this->prepareCombiner($assets, $options)->dump();
}
/**
* prepareCombiner before dumping
*/
public function prepareCombiner(array $assets, array $options = []): AssetCollection
{
$targetPath = $options['targetPath'] ?? null;
$production = $options['production'] ?? false;
$useCache = $options['useCache'] ?? true;
$deepHashKey = $options['deepHashKey'] ?? null;
if ($deepHashKey !== null) {
$this->setDeepHashKeyOnFilters($deepHashKey);
}
$files = [];
$filesSalt = null;
foreach ($assets as $asset) {
$filters = $this->getFilters(File::extension($asset), (bool) $production);
$path = File::symbolizePath($asset);
if (!file_exists($path) && file_exists($this->localPath . $asset)) {
$path = $this->localPath . $asset;
}
$files[] = new FileAsset($path, $filters, base_path());
$filesSalt .= $this->localPath . $asset;
}
$filesSalt = md5($filesSalt);
$collection = new AssetCollection($files, [], $filesSalt);
$collection->setTargetPath($targetPath);
if (!$useCache || $this->storagePath === null) {
return $collection;
}
if (!File::isDirectory($this->storagePath)) {
@File::makeDirectory($this->storagePath);
}
$cache = new FilesystemCache($this->storagePath);
$cachedFiles = [];
foreach ($files as $file) {
$cachedFiles[] = new AssetCache($file, $cache);
}
$cachedCollection = new AssetCollection($cachedFiles, [], $filesSalt);
$cachedCollection->setTargetPath($targetPath);
return $cachedCollection;
}
/**
* registerDefaultFilters
*/
public function registerDefaultFilters(): void
{
// Default JavaScript filters
$this->registerFilter('js', new \October\Rain\Assetic\Filter\JavascriptImporter);
// Default StyleSheet filters
$this->registerFilter('css', new \October\Rain\Assetic\Filter\CssImportFilter);
$this->registerFilter(['css', 'less', 'scss'], new \October\Rain\Assetic\Filter\CssRewriteFilter);
$this->registerFilter('less', new \October\Rain\Assetic\Filter\LessCompiler);
$this->registerFilter('scss', new \October\Rain\Assetic\Filter\ScssCompiler);
// Production filters
$this->registerFilter('js', new \October\Rain\Assetic\Filter\JSMinFilter, true);
$this->registerFilter(['css', 'less', 'scss'], new \October\Rain\Assetic\Filter\StylesheetMinify, true);
}
/**
* setStoragePath
*/
public function setStoragePath(?string $path): void
{
$this->storagePath = $path;
}
/**
* setLocalPath
*/
public function setLocalPath(?string $path): void
{
$this->localPath = $path;
}
//
// Filters
//
/**
* registerFilter to apply to the combining process.
* @param string|array $extension Extension name. Eg: css
* @param object $filter Collection of files to combine.
* @param bool $isProduction
* @return self
*/
public function registerFilter($extension, $filter, $isProduction = false)
{
if (is_array($extension)) {
foreach ($extension as $_extension) {
$this->registerFilter($_extension, $filter);
}
return;
}
$extension = strtolower($extension);
$destination = $isProduction ? 'prodFilters' : 'filters';
if (!isset($this->$destination[$extension])) {
$this->$destination[$extension] = [];
}
if ($filter !== null) {
$this->$destination[$extension][] = $filter;
}
return $this;
}
/**
* resetFilters clears any registered filters.
* @param string $extension Extension name. Eg: css
* @return self
*/
public function resetFilters($extension = null)
{
if ($extension === null) {
$this->filters = [];
$this->prodFilters = [];
}
else {
$this->filters[$extension] = [];
$this->prodFilters[$extension] = [];
}
return $this;
}
/**
* getFilters returns all defined filters for a given extension
*/
public function getFilters(?string $extension = null, bool $isProduction = false): array
{
if ($isProduction) {
if ($extension === null) {
return array_merge($this->filters, $this->prodFilters);
}
return array_merge(
($this->filters[$extension] ?? []),
($this->prodFilters[$extension] ?? [])
);
}
if ($extension === null) {
return $this->filters;
}
return $this->filters[$extension] ?? [];
}
}
================================================
FILE: src/Assetic/Factory/AssetFactory.php
================================================
<?php namespace October\Rain\Assetic\Factory;
use October\Rain\Assetic\Asset\AssetCollection;
use October\Rain\Assetic\Asset\AssetCollectionInterface;
use October\Rain\Assetic\Asset\AssetInterface;
use October\Rain\Assetic\Asset\FileAsset;
use October\Rain\Assetic\Asset\GlobAsset;
use October\Rain\Assetic\Asset\HttpAsset;
use October\Rain\Assetic\AssetManager;
use October\Rain\Assetic\Filter\DependencyExtractorInterface;
use October\Rain\Assetic\FilterManager;
use LogicException;
/**
* AssetFactory creates asset objects.
*
* @author Kris Wallsmith <kris.wallsmith@gmail.com>
*/
class AssetFactory
{
/**
* @var mixed root
*/
protected $root;
/**
* @var mixed debug
*/
protected $debug;
/**
* @var mixed output
*/
protected $output;
/**
* @var mixed am
*/
protected $am;
/**
* @var mixed fm
*/
protected $fm;
/**
* __construct
*
* @param string $root The default root directory
* @param Boolean $debug Filters prefixed with a "?" will be omitted in debug mode
*/
public function __construct($root, $debug = false)
{
$this->root = $root ? rtrim($root, '/') : '';
$this->debug = $debug;
$this->output = 'assetic/*';
}
/**
* Sets debug mode for the current factory.
*
* @param Boolean $debug Debug mode
*/
public function setDebug($debug)
{
$this->debug = $debug;
}
/**
* Checks if the factory is in debug mode.
*
* @return Boolean Debug mode
*/
public function isDebug()
{
return $this->debug;
}
/**
* Sets the default output string.
*
* @param string $output The default output string
*/
public function setDefaultOutput($output)
{
$this->output = $output;
}
/**
* Returns the current asset manager.
*
* @return AssetManager|null The asset manager
*/
public function getAssetManager()
{
return $this->am;
}
/**
* Sets the asset manager to use when creating asset references.
*
* @param AssetManager $am The asset manager
*/
public function setAssetManager(AssetManager $am)
{
$this->am = $am;
}
/**
* Returns the current filter manager.
*
* @return FilterManager|null The filter manager
*/
public function getFilterManager()
{
return $this->fm;
}
/**
* Sets the filter manager to use when adding filters.
*
* @param FilterManager $fm The filter manager
*/
public function setFilterManager(FilterManager $fm)
{
$this->fm = $fm;
}
/**
* createAsset creates a new asset.
*
* Prefixing a filter name with a question mark will cause it to be
* omitted when the factory is in debug mode.
*
* Available options:
*
* * output: An output string
* * name: An asset name for interpolation in output patterns
* * debug: Forces debug mode on or off for this asset
* * root: An array or string of more root directories
*
* @param array|string $inputs An array of input strings
* @param array|string $filters An array of filter names
* @param array $options An array of options
*
* @return AssetCollection An asset collection
*/
public function createAsset($inputs = [], $filters = [], array $options = [])
{
if (!is_array($inputs)) {
$inputs = [$inputs];
}
if (!is_array($filters)) {
$filters = [$filters];
}
if (!isset($options['output'])) {
$options['output'] = $this->output;
}
if (!isset($options['vars'])) {
$options['vars'] = [];
}
if (!isset($options['debug'])) {
$options['debug'] = $this->debug;
}
if (!isset($options['root'])) {
$options['root'] = [$this->root];
}
else {
if (!is_array($options['root'])) {
$options['root'] = [$options['root']];
}
$options['root'][] = $this->root;
}
if (!isset($options['name'])) {
$options['name'] = $this->generateAssetName($inputs, $filters, $options);
}
$asset = $this->createAssetCollection([], $options);
$extensions = [];
// inner assets
foreach ($inputs as $input) {
if (is_array($input)) {
// nested formula
$asset->add($this->createAsset(...$input));
}
else {
$asset->add($this->parseInput($input, $options));
$extensions[pathinfo($input, PATHINFO_EXTENSION)] = true;
}
}
// filters
foreach ($filters as $filter) {
if ('?' != $filter[0]) {
$asset->ensureFilter($this->getFilter($filter));
}
elseif (!$options['debug']) {
$asset->ensureFilter($this->getFilter(substr($filter, 1)));
}
}
// append variables
if (!empty($options['vars'])) {
$toAdd = [];
foreach ($options['vars'] as $var) {
if (false !== strpos($options['output'], '{'.$var.'}')) {
continue;
}
$toAdd[] = '{'.$var.'}';
}
if ($toAdd) {
$options['output'] = str_replace('*', '*.'.implode('.', $toAdd), $options['output']);
}
}
// append consensus extension if missing
if (1 == count($extensions) && !pathinfo($options['output'], PATHINFO_EXTENSION) && $extension = key($extensions)) {
$options['output'] .= '.'.$extension;
}
// output --> target url
$asset->setTargetPath(str_replace('*', $options['name'], $options['output']));
// Return as a collection
return $asset instanceof AssetCollectionInterface
? $asset
: $this->createAssetCollection([$asset]);
}
/**
* generateAssetName
*/
public function generateAssetName($inputs, $filters, $options = []): string
{
foreach (array_diff(array_keys($options), ['output', 'debug', 'root']) as $key) {
unset($options[$key]);
}
ksort($options);
return substr(sha1(serialize($inputs).serialize($filters).serialize($options)), 0, 7);
}
/**
* getLastModified
*/
public function getLastModified(AssetInterface $asset)
{
$mtime = 0;
foreach ($asset instanceof AssetCollectionInterface ? $asset : [$asset] as $leaf) {
$mtime = max($mtime, $leaf->getLastModified());
if (!$filters = $leaf->getFilters()) {
continue;
}
$prevFilters = [];
foreach ($filters as $filter) {
$prevFilters[] = $filter;
if (!$filter instanceof DependencyExtractorInterface) {
continue;
}
// Extract children from leaf after running all preceding filters
$clone = clone $leaf;
$clone->clearFilters();
foreach (array_slice($prevFilters, 0, -1) as $prevFilter) {
$clone->ensureFilter($prevFilter);
}
$clone->load();
foreach ($filter->getChildren($this, $clone->getContent(), $clone->getSourceDirectory()) as $child) {
$mtime = max($mtime, $this->getLastModified($child));
}
}
}
return $mtime;
}
/**
* Parses an input string string into an asset.
*
* The input string can be one of the following:
*
* * An absolute URL: If the string contains "://" or starts with "//" it will be interpreted as an HTTP asset
* * A glob: If the string contains a "*" it will be interpreted as a glob
* * A path: Otherwise the string is interpreted as a filesystem path
*
* Both globs and paths will be absolute using the current root directory.
*
* @param string $input An input string
* @param array $options An array of options
*
* @return AssetInterface An asset
*/
protected function parseInput($input, array $options = [])
{
if (false !== strpos($input, '://') || 0 === strpos($input, '//')) {
return $this->createHttpAsset($input, $options['vars']);
}
if (self::isAbsolutePath($input)) {
if ($root = self::findRootDir($input, $options['root'])) {
$path = ltrim(substr($input, strlen($root)), '/');
}
else {
$path = null;
}
}
else {
$root = $this->root;
$path = $input;
$input = $this->root.'/'.$path;
}
if (false !== strpos($input, '*')) {
return $this->createGlobAsset($input, $root, $options['vars']);
}
return $this->createFileAsset($input, $root, $path, $options['vars']);
}
/**
* createAssetCollection
*/
protected function createAssetCollection(array $assets = [], array $options = [])
{
return new AssetCollection($assets, [], null, isset($options['vars']) ? $options['vars'] : []);
}
/**
* createHttpAsset
*/
protected function createHttpAsset($sourceUrl, $vars)
{
return new HttpAsset($sourceUrl, [], false, $vars);
}
/**
* createGlobAsset
*/
protected function createGlobAsset($glob, $root = null, $vars = [])
{
return new GlobAsset($glob, [], $root, $vars);
}
/**
* createFileAsset
*/
protected function createFileAsset($source, $root = null, $path = null, $vars = [])
{
return new FileAsset($source, [], $root, $path, $vars);
}
/**
* getFilter
*/
protected function getFilter($name)
{
if (!$this->fm) {
throw new LogicException('There is no filter manager.');
}
return $this->fm->get($name);
}
/**
* isAbsolutePath
*/
private static function isAbsolutePath($path)
{
return '/' == $path[0] || '\\' == $path[0] || (3 < strlen($path) && ctype_alpha($path[0]) && $path[1] == ':' && ('\\' == $path[2] || '/' == $path[2]));
}
/**
* findRootDir loops through the root directories and returns the first match.
*
* @param string $path An absolute path
* @param array $roots An array of root directories
*
* @return string|null The matching root directory, if found
*/
private static function findRootDir($path, array $roots)
{
foreach ($roots as $root) {
if (0 === strpos($path, $root)) {
return $root;
}
}
}
}
================================================
FILE: src/Assetic/Filter/BaseCssFilter.php
================================================
<?php namespace October\Rain\Assetic\Filter;
use October\Rain\Assetic\Util\CssUtils;
/**
* BaseCssFilter is an abstract filter for dealing with CSS.
*
* @author Kris Wallsmith <kris.wallsmith@gmail.com>
*/
abstract class BaseCssFilter implements FilterInterface
{
/**
* @see CssUtils::filterReferences()
*/
protected function filterReferences(string $content, callable $callback): string
{
return CssUtils::filterReferences($content, $callback);
}
/**
* @see CssUtils::filterUrls()
*/
protected function filterUrls(string $content, callable $callback): string
{
return CssUtils::filterUrls($content, $callback);
}
/**
* @see CssUtils::filterImports()
*/
protected function filterImports(string $content, callable $callback, bool $includeUrl = true): string
{
return CssUtils::filterImports($content, $callback, $includeUrl);
}
/**
* @see CssUtils::filterIEFilters()
*/
protected function filterIEFilters(string $content, callable $callback): string
{
return CssUtils::filterIEFilters($content, $callback);
}
}
================================================
FILE: src/Assetic/Filter/CssImportFilter.php
================================================
<?php namespace October\Rain\Assetic\Filter;
use October\Rain\Assetic\Filter\HashableInterface;
use October\Rain\Assetic\Asset\AssetInterface;
use October\Rain\Assetic\Asset\FileAsset;
use October\Rain\Assetic\Asset\HttpAsset;
use October\Rain\Assetic\Factory\AssetFactory;
use October\Rain\Assetic\Util\CssUtils;
/**
* CssImportFilter converts imported stylesheets to inline.
*
* @author Kris Wallsmith <kris.wallsmith@gmail.com>
*/
class CssImportFilter extends BaseCssFilter implements HashableInterface, DependencyExtractorInterface
{
/**
* @var FilterInterface|null importFilter
*/
protected $importFilter;
/**
* @var string|null lastHash
*/
protected $lastHash;
/**
* __construct
*
* @param FilterInterface $importFilter Filter for each imported asset
*/
public function __construct(?FilterInterface $importFilter = null)
{
$this->importFilter = $importFilter ?: new CssRewriteFilter();
}
/**
* filterLoad
*/
public function filterLoad(AssetInterface $asset): void
{
$importFilter = $this->importFilter;
$sourceRoot = $asset->getSourceRoot();
$sourcePath = $asset->getSourcePath();
$callback = function ($matches) use ($importFilter, $sourceRoot, $sourcePath) {
if (!$matches['url'] || $sourceRoot === null) {
return $matches[0];
}
$importRoot = $sourceRoot;
// Absolute
if (strpos($matches['url'], '://') !== false) {
[$importScheme, $tmp] = explode('://', $matches['url'], 2);
[$importHost, $importPath] = explode('/', $tmp, 2);
$importRoot = $importScheme.'://'.$importHost;
}
// Protocol-relative
elseif (strpos($matches['url'], '//') === 0) {
[$importHost, $importPath] = explode('/', substr($matches['url'], 2), 2);
$importRoot = '//'.$importHost;
}
// Root-relative
elseif ($matches['url'][0] == '/') {
$importPath = substr($matches['url'], 1);
}
// Document-relative
elseif ($sourcePath !== null) {
$importPath = $matches['url'];
if ('.' != $sourceDir = dirname($sourcePath)) {
$importPath = $sourceDir.'/'.$importPath;
}
}
else {
return $matches[0];
}
$importSource = $importRoot.'/'.$importPath;
if (strpos($importSource, '://') !== false || strpos($importSource, '//') === 0) {
$import = new HttpAsset($importSource, [$importFilter], true);
}
// Ignore non-css and non-existent imports
elseif (pathinfo($importPath, PATHINFO_EXTENSION) != 'css' || !file_exists($importSource)) {
return $matches[0];
}
else {
$import = new FileAsset($importSource, [$importFilter], $importRoot, $importPath);
}
$import->setTargetPath($sourcePath);
return $import->dump();
};
$content = $asset->getContent();
$lastHash = md5($content);
do {
$content = $this->filterImports($content, $callback);
$hash = md5($content);
} while ($lastHash != $hash && ($lastHash = $hash));
$asset->setContent($content);
}
/**
* filterDump
*/
public function filterDump(AssetInterface $asset): void
{
}
/**
* hashAsset
*/
public function hashAsset($asset, $localPath)
{
$factory = new AssetFactory($localPath);
$children = $this->getAllChildren($factory, file_get_contents($asset), dirname($asset));
$allFiles = [];
foreach ($children as $child) {
$allFiles[] = $child;
}
$modified = [];
foreach ($allFiles as $file) {
$modified[] = $file->getLastModified();
}
return md5(implode('|', $modified));
}
/**
* setHash
*/
public function setHash($hash)
{
$this->lastHash = $hash;
}
/**
* hash generated for the object
* @return string
*/
public function hash()
{
return $this->lastHash ?: serialize($this);
}
/**
* getAllChildren loads all children recursively
*/
public function getAllChildren(AssetFactory $factory, $content, $loadPath = null)
{
$children = (new static)->getChildren($factory, $content, $loadPath);
foreach ($children as $child) {
$childContent = file_get_contents($child->getSourceRoot().'/'.$child->getSourcePath());
$children = array_merge($children, (new static)->getChildren($factory, $childContent, $loadPath.'/'.dirname($child->getSourcePath())));
}
return $children;
}
/**
* getChildren only returns one level of children
*/
public function getChildren(AssetFactory $factory, $content, $loadPath = null)
{
if (!$loadPath) {
return [];
}
$children = [];
foreach (CssUtils::extractImports($content) as $reference) {
// Strict check, only allow .css imports
if (substr($reference, -4) !== '.css') {
continue;
}
if (file_exists($file = $loadPath.'/'.$reference)) {
$coll = $factory->createAsset($file, [], ['root' => $loadPath]);
foreach ($coll as $leaf) {
$leaf->ensureFilter($this);
$children[] = $leaf;
break;
}
}
}
return $children;
}
}
================================================
FILE: src/Assetic/Filter/CssMinFilter.php
================================================
<?php namespace October\Rain\Assetic\Filter;
use October\Rain\Assetic\Asset\AssetInterface;
/**
* CssMinFilter filters assets through CssMin.
*
* @link http://code.google.com/p/cssmin
* @author Kris Wallsmith <kris.wallsmith@gmail.com>
*/
class CssMinFilter implements FilterInterface
{
private $filters;
private $plugins;
public function __construct()
{
$this->filters = [];
$this->plugins = [];
}
public function setFilters(array $filters)
{
$this->filters = $filters;
}
public function setFilter($name, $value)
{
$this->filters[$name] = $value;
}
public function setPlugins(array $plugins)
{
$this->plugins = $plugins;
}
public function setPlugin($name, $value)
{
$this->plugins[$name] = $value;
}
public function filterLoad(AssetInterface $asset): void
{
}
public function filterDump(AssetInterface $asset): void
{
$filters = $this->filters;
$plugins = $this->plugins;
if (isset($filters['ImportImports']) && true === $filters['ImportImports']) {
if ($dir = $asset->getSourceDirectory()) {
$filters['ImportImports'] = array('BasePath' => $dir);
} else {
unset($filters['ImportImports']);
}
}
$asset->setContent(\CssMin::minify($asset->getContent(), $filters, $plugins));
}
}
================================================
FILE: src/Assetic/Filter/CssRewriteFilter.php
================================================
<?php namespace October\Rain\Assetic\Filter;
use October\Rain\Assetic\Asset\AssetInterface;
/**
* CssRewriteFilter fixes relative CSS urls.
*
* @author Kris Wallsmith <kris.wallsmith@gmail.com>
*/
class CssRewriteFilter extends BaseCssFilter
{
/**
* filterLoad
*/
public function filterLoad(AssetInterface $asset): void
{
}
/**
* filterDump
*/
public function filterDump(AssetInterface $asset): void
{
$sourceBase = $asset->getSourceRoot();
$sourcePath = $asset->getSourcePath();
$targetPath = $asset->getTargetPath();
if ($sourcePath === null || $targetPath === null || $sourcePath == $targetPath) {
return;
}
// Learn how to get from the target back to the source
if (strpos($sourceBase, '://') !== false) {
[$scheme, $url] = explode('://', $sourceBase.'/'.$sourcePath, 2);
[$host, $path] = explode('/', $url, 2);
$host = $scheme.'://'.$host.'/';
$path = false === strpos($path, '/') ? '' : dirname($path);
$path .= '/';
}
else {
// Assume source and target are on the same host
$host = '';
// Pop entries off the target until it fits in the source
if (dirname($sourcePath) == '.') {
$path = str_repeat('../', substr_count($targetPath, '/'));
}
elseif (($targetDir = dirname($targetPath)) == '.') {
$path = dirname($sourcePath).'/';
}
else {
$path = '';
while (strpos($sourcePath, $targetDir) !== 0) {
if (($pos = strrpos($targetDir, '/')) !== false) {
$targetDir = substr($targetDir, 0, $pos);
$path .= '../';
}
else {
$targetDir = '';
$path .= '../';
break;
}
}
$path .= ltrim(substr(dirname($sourcePath).'/', strlen($targetDir)), '/');
}
}
$content = $this->filterReferences($asset->getContent(), function ($matches) use ($host, $path) {
// Absolute or protocol-relative or data uri
if (
strpos($matches['url'], '://') !== false ||
strpos($matches['url'], '#') === 0 ||
strpos($matches['url'], '//') === 0 ||
strpos($matches['url'], 'data:') === 0
) {
return $matches[0];
}
// Root relative
if (isset($matches['url'][0]) && '/' == $matches['url'][0]) {
return str_replace($matches['url'], $host.$matches['url'], $matches[0]);
}
// Document relative
$url = $matches['url'];
while (strpos($url, '../') === 0 && substr_count($path, '/') >= 2) {
$path = substr($path, 0, strrpos(rtrim($path, '/'), '/') + 1);
$url = substr($url, 3);
}
$parts = [];
foreach (explode('/', $host.$path.$url) as $part) {
if ($part === '..' && count($parts) && end($parts) !== '..') {
array_pop($parts);
}
else {
$parts[] = $part;
}
}
return str_replace($matches['url'], implode('/', $parts), $matches[0]);
});
$asset->setContent($content);
}
}
================================================
FILE: src/Assetic/Filter/DependencyExtractorInterface.php
================================================
<?php namespace October\Rain\Assetic\Filter;
use October\Rain\Assetic\Asset\AssetInterface;
use October\Rain\Assetic\Factory\AssetFactory;
/**
* DependencyExtractorInterface is a filter that knows how to extract dependencies.
*
* @author Kris Wallsmith <kris.wallsmith@gmail.com>
*/
interface DependencyExtractorInterface extends FilterInterface
{
/**
* Returns child assets.
*
* @param AssetFactory $factory The asset factory
* @param string $content The asset content
* @param string $loadPath An optional load path
*
* @return AssetInterface[] Child assets
*/
public function getChildren(AssetFactory $factory, $content, $loadPath = null);
}
================================================
FILE: src/Assetic/Filter/FilterCollection.php
================================================
<?php namespace October\Rain\Assetic\Filter;
use October\Rain\Assetic\Asset\AssetInterface;
use Traversable;
/**
* FilterCollection is a collection of filters.
*
* @author Kris Wallsmith <kris.wallsmith@gmail.com>
*/
class FilterCollection implements FilterInterface, \IteratorAggregate, \Countable
{
/**
* @var array filters
*/
protected $filters = [];
/**
* __construct
*/
public function __construct(array $filters = [])
{
foreach ($filters as $filter) {
$this->ensure($filter);
}
}
/**
* Checks that the current collection contains the supplied filter.
*
* If the supplied filter is another filter collection, each of its
* filters will be checked.
*/
public function ensure(FilterInterface $filter): void
{
if ($filter instanceof \Traversable) {
foreach ($filter as $f) {
$this->ensure($f);
}
} elseif (!in_array($filter, $this->filters, true)) {
$this->filters[] = $filter;
}
}
/**
* all
*/
public function all(): array
{
return $this->filters;
}
/**
* clear
*/
public function clear(): void
{
$this->filters = [];
}
/**
* filterLoad
*/
public function filterLoad(AssetInterface $asset): void
{
foreach ($this->filters as $filter) {
$filter->filterLoad($asset);
}
}
/**
* filterDump
*/
public function filterDump(AssetInterface $asset): void
{
foreach ($this->filters as $filter) {
$filter->filterDump($asset);
}
}
/**
* getIterator
*/
public function getIterator(): Traversable
{
return new \ArrayIterator($this->filters);
}
/**
* count
*/
public function count(): int
{
return count($this->filters);
}
}
================================================
FILE: src/Assetic/Filter/FilterInterface.php
================================================
<?php namespace October\Rain\Assetic\Filter;
use October\Rain\Assetic\Asset\AssetInterface;
/**
* A filter manipulates an asset at load and dump.
*
* @author Kris Wallsmith <kris.wallsmith@gmail.com>
*/
interface FilterInterface
{
/**
* Filters an asset after it has been loaded.
*
* @param AssetInterface $asset An asset
*/
public function filterLoad(AssetInterface $asset): void;
/**
* Filters an asset just before it's dumped.
*
* @param AssetInterface $asset An asset
*/
public function filterDump(AssetInterface $asset): void;
}
================================================
FILE: src/Assetic/Filter/HashableInterface.php
================================================
<?php namespace October\Rain\Assetic\Filter;
/**
* A filter can implement a hash function
*
* @author Francisco Facioni <fran6co@gmail.com>
*/
interface HashableInterface
{
/**
* Generates a hash for the object
*
* @return string Object hash
*/
public function hash();
}
================================================
FILE: src/Assetic/Filter/JSMinFilter.php
================================================
<?php namespace October\Rain\Assetic\Filter;
use JSMin;
use October\Rain\Assetic\Asset\AssetInterface;
/**
* JSMinFilter filters assets through JsMin.
*
* All credit for the filter itself is mentioned in the file itself.
*
* @link https://raw.github.com/mrclay/minify/master/min/lib/JSMin.php
* @author Brunoais <brunoaiss@gmail.com>
*/
class JSMinFilter implements FilterInterface
{
/**
* filterLoad
*/
public function filterLoad(AssetInterface $asset): void
{
}
/**
* filterDump will use JSMin to minify the asset and checks the filename
* for "min.js" to issues arising from double minification.
*/
public function filterDump(AssetInterface $asset): void
{
$contents = $asset->getContent();
$isMinifiedAlready = strpos($asset->getSourcePath(), '.min.js') !== false;
if (!$isMinifiedAlready) {
$contents = JSMin::minify($contents);
}
$asset->setContent($contents);
}
}
================================================
FILE: src/Assetic/Filter/JSqueezeFilter.php
================================================
<?php namespace October\Rain\Assetic\Filter;
use October\Rain\Assetic\Asset\AssetInterface;
/**
* JSqueeze filter.
*
* @link https://github.com/nicolas-grekas/JSqueeze
* @author Nicolas Grekas <p@tchwork.com>
*/
class JSqueezeFilter implements FilterInterface
{
/**
* @var mixed singleLine
*/
protected $singleLine = true;
/**
* @var bool keepImportantComments
*/
protected $keepImportantComments = true;
/**
* @var mixed className
*/
protected $className;
/**
* @var bool specialVarRx
*/
protected $specialVarRx = false;
/**
* @var mixed defaultRx
*/
protected $defaultRx;
/**
* __construct
*/
public function __construct()
{
// JSqueeze is namespaced since 2.x, this works with both 1.x and 2.x
if (class_exists('\\Patchwork\\JSqueeze')) {
$this->className = '\\Patchwork\\JSqueeze';
$this->defaultRx = \Patchwork\JSqueeze::SPECIAL_VAR_PACKER;
} else {
$this->className = '\\JSqueeze';
$this->defaultRx = \JSqueeze::SPECIAL_VAR_RX;
}
}
public function setSingleLine($bool)
{
$this->singleLine = (bool) $bool;
}
// call setSpecialVarRx(true) to enable global var/method/property
// renaming with the default regex (for 1.x or 2.x)
public function setSpecialVarRx($specialVarRx)
{
if (true === $specialVarRx) {
$this->specialVarRx = $this->defaultRx;
} else {
$this->specialVarRx = $specialVarRx;
}
}
public function keepImportantComments($bool)
{
$this->keepImportantComments = (bool) $bool;
}
public function filterLoad(AssetInterface $asset): void
{
}
public function filterDump(AssetInterface $asset): void
{
$parser = new $this->className();
$asset->setContent($parser->squeeze(
$asset->getContent(),
$this->singleLine,
$this->keepImportantComments,
$this->specialVarRx
));
}
}
================================================
FILE: src/Assetic/Filter/JavascriptImporter.php
================================================
<?php namespace October\Rain\Assetic\Filter;
use File;
use October\Rain\Assetic\Asset\AssetInterface;
use October\Rain\Assetic\Filter\FilterInterface;
use RuntimeException;
/**
* JavascriptImporter importer JS Filter
* Class used to import referenced javascript files, inside comments.
*
* =include library/jquery.js;
* =require library/jquery.js;
*
* @package october/parse
* @author Alexey Bobkov, Samuel Georges
*/
class JavascriptImporter implements FilterInterface
{
/**
* @var string Location of where the processed JS script resides.
*/
protected $scriptPath;
/**
* @var string File name for the processed JS script.
*/
protected $scriptFile;
/**
* @var array Cache of required files.
*/
protected $includedFiles = [];
/**
* @var array Variables defined by this script.
*/
protected $definedVars = [];
/**
* filterLoad
*/
public function filterLoad(AssetInterface $asset): void
{
}
/**
* filterDump
*/
public function filterDump(AssetInterface $asset): void
{
$this->scriptPath = dirname($asset->getSourceRoot() . '/' . $asset->getSourcePath());
$this->scriptFile = basename($asset->getSourcePath());
$asset->setContent($this->parse($asset->getContent()));
}
/**
* Process JS imports inside a string of javascript
* @param string $content JS code to process.
* @return string Processed JS.
*/
protected function parse(string $content): string
{
$macros = [];
$imported = '';
// Look for: /* comments */
if (!preg_match_all('@/\*(.*)\*/@msU', $content, $matches)) {
return $content;
}
foreach ($matches[1] as $macro) {
// Look for: =include something
if (!preg_match_all('/=([^\\s]*)\\s(.*)\n/', $macro, $matches2)) {
continue;
}
foreach ($matches2[1] as $index => $macroName) {
$method = 'directive' . ucfirst(strtolower($macroName));
if (method_exists($this, $method)) {
$imported .= $this->$method($matches2[2][$index]);
}
}
}
return $imported . $content;
}
/**
* Directive to process script includes
*/
protected function directiveInclude(string $data, bool $required = false): string
{
$require = explode(',', $data);
$result = "";
foreach ($require as $script) {
$script = trim($script);
if (!File::extension($script)) {
$script = $script . '.js';
}
$scriptPath = realpath($this->scriptPath . '/' . $script);
if (!File::isFile($scriptPath)) {
$errorMsg = sprintf("File '%s' not found. in %s", $script, $this->scriptFile);
if ($required) {
throw new RuntimeException($errorMsg);
}
$result .= '/* ' . $errorMsg . ' */' . PHP_EOL;
continue;
}
/*
* Exclude duplicates
*/
if (in_array($script, $this->includedFiles)) {
continue;
}
$this->includedFiles[] = $script;
/*
* Nested parsing
*/
$oldScriptPath = $this->scriptPath;
$oldScriptFile = $this->scriptFile;
$this->scriptPath = dirname($scriptPath);
$this->scriptFile = basename($scriptPath);
$content = File::get($scriptPath);
$content = $this->parse($content) . PHP_EOL;
$this->scriptPath = $oldScriptPath;
$this->scriptFile = $oldScriptFile;
/*
* Parse in "magic constants"
*/
$content = str_replace(
['__DATE__', '__FILE__'],
[date("D M j G:i:s T Y"), $script],
$content
);
$result .= $content;
}
return $result;
}
/**
* Directive to process mandatory script includes
*/
protected function directiveRequire(string $data): string
{
return $this->directiveInclude($data, true);
}
/**
* Directive to define and replace variables
*/
protected function directiveDefine(string $data): string
{
if (preg_match('@([^\\s]*)\\s+(.*)@', $data, $matches)) {
// str_replace($matches[1], $matches[2], $context);
$this->definedVars[] = [$matches[1], $matches[2]];
}
return '';
}
}
================================================
FILE: src/Assetic/Filter/LessCompiler.php
================================================
<?php namespace October\Rain\Assetic\Filter;
use October\Rain\Assetic\Asset\AssetInterface;
use October\Rain\Assetic\Factory\AssetFactory;
use October\Rain\Assetic\Filter\LessphpFilter;
use October\Rain\Assetic\Filter\HashableInterface;
use October\Rain\Assetic\Filter\DependencyExtractorInterface;
use October\Rain\Assetic\Filter\FilterInterface;
use Less_Parser;
/**
* Less.php Compiler Filter
* Class used to compiled stylesheet less files, not using leafo!
*
* @package october/parse
* @author Alexey Bobkov, Samuel Georges
*/
class LessCompiler implements FilterInterface, HashableInterface, DependencyExtractorInterface
{
/**
* @var array presets
*/
protected $presets = [];
/**
* @var string lastHash
*/
protected $lastHash;
/**
* setPresets
*/
public function setPresets(array $presets)
{
$this->presets = $presets;
}
/**
* filterLoad
*/
public function filterLoad(AssetInterface $asset): void
{
$parser = new Less_Parser();
// CSS Rewriter will take care of this
$parser->SetOption('relativeUrls', false);
$parser->parseFile($asset->getSourceRoot() . '/' . $asset->getSourcePath());
// Set the LESS variables after parsing to override them
$parser->ModifyVars($this->presets);
$asset->setContent($parser->getCss());
}
/**
* filterDump
*/
public function filterDump(AssetInterface $asset): void
{
}
/**
* hashAsset
*/
public function hashAsset($asset, $localPath)
{
$factory = new AssetFactory($localPath);
$children = $this->getChildren($factory, file_get_contents($asset), dirname($asset));
$allFiles = [];
foreach ($children as $child) {
$allFiles[] = $child;
}
$modified = [];
foreach ($allFiles as $file) {
$modified[] = $file->getLastModified();
}
return md5(implode('|', $modified));
}
/**
* setHash
*/
public function setHash($hash)
{
$this->lastHash = $hash;
}
/**
* hash generated for the object
* @return string
*/
public function hash()
{
return $this->lastHash ?: serialize($this);
}
/**
* getChildren loads children recursively
*/
public function getChildren(AssetFactory $factory, $content, $loadPath = null)
{
$children = (new LessphpFilter)->getChildren($factory, $content, $loadPath);
foreach ($children as $child) {
$childContent = file_get_contents($child->getSourceRoot().'/'.$child->getSourcePath());
$children = array_merge($children, (new LessphpFilter)->getChildren($factory, $childContent, $loadPath.'/'.dirname($child->getSourcePath())));
}
return $children;
}
}
================================================
FILE: src/Assetic/Filter/LessphpFilter.php
================================================
<?php namespace October\Rain\Assetic\Filter;
use October\Rain\Assetic\Asset\AssetInterface;
use October\Rain\Assetic\Factory\AssetFactory;
use October\Rain\Assetic\Util\LessUtils;
/**
* Loads LESS files using the PHP implementation of less, lessphp.
*
* Less files are mostly compatible, but there are slight differences.
*
* @link http://leafo.net/lessphp/
*
* @author David Buchmann <david@liip.ch>
* @author Kris Wallsmith <kris.wallsmith@gmail.com>
*/
class LessphpFilter implements DependencyExtractorInterface
{
private $presets = [];
private $formatter;
private $preserveComments;
private $customFunctions = [];
private $options = [];
/**
* Lessphp Load Paths
*
* @var array
*/
protected $loadPaths = [];
/**
* Adds a load path to the paths used by lessphp
*
* @param string $path Load Path
*/
public function addLoadPath($path)
{
$this->loadPaths[] = $path;
}
/**
* Sets load paths used by lessphp
*
* @param array $loadPaths Load paths
*/
public function setLoadPaths(array $loadPaths)
{
$this->loadPaths = $loadPaths;
}
public function setPresets(array $presets)
{
$this->presets = $presets;
}
public function setOptions(array $options)
{
$this->options = $options;
}
/**
* @param string $formatter One of "lessjs", "compressed", or "classic".
*/
public function setFormatter($formatter)
{
$this->formatter = $formatter;
}
/**
* @param boolean $preserveComments
*/
public function setPreserveComments($preserveComments)
{
$this->preserveComments = $preserveComments;
}
public function filterLoad(AssetInterface $asset): void
{
$lc = new \lessc();
if ($dir = $asset->getSourceDirectory()) {
$lc->importDir = $dir;
}
foreach ($this->loadPaths as $loadPath) {
$lc->addImportDir($loadPath);
}
foreach ($this->customFunctions as $name => $callable) {
$lc->registerFunction($name, $callable);
}
if ($this->formatter) {
$lc->setFormatter($this->formatter);
}
if (null !== $this->preserveComments) {
$lc->setPreserveComments($this->preserveComments);
}
if (method_exists($lc, 'setOptions') && count($this->options) > 0) {
$lc->setOptions($this->options);
}
$asset->setContent($lc->parse($asset->getContent(), $this->presets));
}
public function registerFunction($name, $callable)
{
$this->customFunctions[$name] = $callable;
}
public function filterDump(AssetInterface $asset): void
{
}
public function getChildren(AssetFactory $factory, $content, $loadPath = null)
{
$loadPaths = $this->loadPaths;
if ($loadPath !== null) {
$loadPaths[] = $loadPath;
}
if (empty($loadPaths)) {
return [];
}
$children = [];
foreach (LessUtils::extractImports($content) as $reference) {
if (substr($reference, -4) === '.css') {
// skip normal css imports
// todo: skip imports with media queries
continue;
}
if (substr($reference, -5) !== '.less') {
$reference .= '.less';
}
foreach ($loadPaths as $loadPath) {
if (file_exists($file = $loadPath.'/'.$reference)) {
$coll = $factory->createAsset($file, [], ['root' => $loadPath]);
foreach ($coll as $leaf) {
$leaf->ensureFilter($this);
$children[] = $leaf;
break 2;
}
}
}
}
return $children;
}
}
================================================
FILE: src/Assetic/Filter/ScssCompiler.php
================================================
<?php namespace October\Rain\Assetic\Filter;
use Event;
use October\Rain\Assetic\Asset\AssetInterface;
use October\Rain\Assetic\Factory\AssetFactory;
use October\Rain\Assetic\Filter\ScssphpFilter;
use October\Rain\Assetic\Filter\HashableInterface;
use October\Rain\Assetic\Filter\DependencyExtractorInterface;
use October\Rain\Assetic\Filter\FilterInterface;
/**
* Less.php Compiler Filter
* Class used to compiled stylesheet less files, not using leafo!
*
* @package october/parse
* @author Alexey Bobkov, Samuel Georges
*/
class ScssCompiler extends ScssphpFilter implements HashableInterface, DependencyExtractorInterface
{
protected $currentFiles = [];
protected $variables = [];
protected $lastHash;
public function __construct()
{
Event::listen('cms.combiner.beforePrepare', function ($compiler, $assets) {
foreach ($assets as $asset) {
if (pathinfo($asset)['extension'] == 'scss') {
$this->currentFiles[] = $asset;
}
}
});
}
public function setPresets(array $presets)
{
$this->variables = array_merge($this->variables, $presets);
}
public function setVariables(array $variables)
{
$this->variables = array_merge($this->variables, $variables);
}
public function addVariable($variable)
{
$this->variables[] = $variable;
}
public function filterLoad(AssetInterface $asset): void
{
parent::setVariables($this->variables);
parent::filterLoad($asset);
}
public function setHash($hash)
{
$this->lastHash = $hash;
}
/**
* Generates a hash for the object
* @return string
*/
public function hash()
{
return $this->lastHash ?: serialize($this);
}
public function hashAsset($asset, $localPath)
{
$factory = new AssetFactory($localPath);
$children = $this->getChildren($factory, file_get_contents($asset), dirname($asset));
$allFiles = [];
foreach ($children as $child) {
$allFiles[] = $child;
}
$modifieds = [];
foreach ($allFiles as $file) {
$modifieds[] = $file->getLastModified();
}
return md5(implode('|', $modifieds));
}
}
================================================
FILE: src/Assetic/Filter/ScssphpFilter.php
================================================
<?php namespace October\Rain\Assetic\Filter;
use Url;
use File;
use Config;
use Storage;
use October\Rain\Assetic\Asset\AssetInterface;
use October\Rain\Assetic\Factory\AssetFactory;
use October\Rain\Assetic\Util\SassUtils;
use ScssPhp\ScssPhp\Compiler;
/**
* ScssphpFilter loads SCSS files using the PHP implementation of scss, scssphp.
*
* Scss files are mostly compatible, but there are slight differences.
*
* @link https://github.com/scssphp/scssphp
*
* @author Bart van den Burg <bart@samson-it.nl>
*/
class ScssphpFilter implements DependencyExtractorInterface
{
/**
* @var array importPaths
*/
protected $importPaths = [];
/**
* @var array customFunctions
*/
protected $customFunctions = [];
/**
* @var mixed formatter
*/
protected $formatter;
/**
* @var array variables
*/
protected $variables = [];
/**
* setFormatter
*/
public function setFormatter($formatter)
{
$this->formatter = $formatter;
}
/**
* setVariables
*/
public function setVariables(array $variables)
{
$this->variables = $variables;
}
/**
* addVariable
*/
public function addVariable($variable)
{
$this->variables[] = $variable;
}
/**
* setImportPaths
*/
public function setImportPaths(array $paths)
{
$this->importPaths = $paths;
}
/**
* addImportPath
*/
public function addImportPath($path)
{
$this->importPaths[] = $path;
}
/**
* registerFunction
*/
public function registerFunction($name, $callable)
{
$this->customFunctions[$name] = $callable;
}
/**
* filterLoad
*/
public function filterLoad(AssetInterface $asset): void
{
$sc = new Compiler();
if ($dir = $asset->getSourceDirectory()) {
$sc->addImportPath($dir);
}
foreach ($this->importPaths as $path) {
$sc->addImportPath($path);
}
foreach ($this->customFunctions as $name => $callable) {
$sc->registerFunction($name, $callable);
}
if ($this->formatter) {
$sc->setOutputStyle($this->formatter);
}
if (!empty($this->variables)) {
$sc->addVariables($this->variables);
}
// Generate source map file
$useSourceMaps = Config::get('cms.enable_asset_source_maps', false);
if ($useSourceMaps) {
$mapFile = md5($asset->getSourcePath()).'.css.map';
$sc->setSourceMap(Compiler::SOURCE_MAP_FILE);
$sc->setSourceMapOptions([
'sourceMapURL' => $this->getSourceMapPublicUrl().'/'.$mapFile,
'sourceMapBasepath' => '',
'sourceRoot' => '/',
]);
$result = $sc->compileString($asset->getContent());
File::put($this->getSourceMapLocalPath().'/'.$mapFile, $result->getSourceMap());
}
else {
$result = $sc->compileString($asset->getContent());
}
$asset->setContent($result->getCss());
}
/**
* filterDump
*/
public function filterDump(AssetInterface $asset): void
{
}
/**
* getChildren
*/
public function getChildren(AssetFactory $factory, $content, $loadPath = null)
{
$sc = new Compiler();
if ($loadPath !== null) {
$sc->addImportPath($loadPath);
}
foreach ($this->importPaths as $path) {
$sc->addImportPath($path);
}
$children = [];
foreach (SassUtils::extractImports($content) as $match) {
$file = $sc->findImport($match);
if ($file) {
$children[] = $child = $factory->createAsset($file, [], ['root' => $loadPath]);
$child->load();
$children = array_merge(
$children,
$this->getChildren($factory, $child->getContent(), $child->getSourceDirectory())
);
}
}
return $children;
}
/**
* getSourceMapLocalPath returns the local path for source maps
*/
protected function getSourceMapLocalPath(): string
{
$path = rtrim(Config::get('filesystems.disks.resources.root', storage_path('app/resources')), '/');
$path .= '/sourcemap';
if (!File::isDirectory($path)) {
File::makeDirectory($path, 0755, true, true);
}
return $path;
}
/**
* getSourceMapPublicUrl returns the public address for the source map path
*/
protected function getSourceMapPublicUrl(): string
{
$fullPath = Config::get('filesystems.disks.resources.url', '/storage/app/resources');
$fullPath .= '/sourcemap';
if (
Config::get('filesystems.disks.resources.driver') === 'local' &&
Config::get('system.relative_links') === true
) {
return Url::toRelative($fullPath);
}
return Url::asset($fullPath);
}
}
================================================
FILE: src/Assetic/Filter/StylesheetMinify.php
================================================
<?php namespace October\Rain\Assetic\Filter;
use October\Rain\Assetic\Asset\AssetInterface;
use October\Rain\Assetic\Filter\FilterInterface;
/**
* StylesheetMinify CSS Filter
* Class used to compress stylesheet css files.
*
* @package october/parse
* @author Alexey Bobkov, Samuel Georges
*/
class StylesheetMinify implements FilterInterface
{
/**
* filterLoad
*/
public function filterLoad(AssetInterface $asset): void
{
}
/**
* filterDump
*/
public function filterDump(AssetInterface $asset): void
{
$asset->setContent($this->minify($asset->getContent()));
}
/**
* Minify CSS
* @param string $css CSS code to minify.
* @return string Minified CSS.
*/
protected function minify(string $css): string
{
// Normalize whitespace in a smart way
$css = preg_replace('/\s{2,}/', ' ', $css);
// Remove spaces before and after comment
$css = preg_replace('/(\s+)(\/\*[^!](.*?)\*\/)(\s+)/', '$2', $css);
// Add a space after retained /*! comments to prevent valid CSS from appearing as a
// removable comment, eg: /*! keepme */*,:after{content:'nuked'}/*another comment*/
$css = preg_replace('#(/\*!.*?\*/)(\*)#s', '$1 $2', $css);
// Remove comment blocks, everything between /* and */, ignore /*! comments
$css = preg_replace('#/\*[^\!].*?\*/#s', '', $css);
// Remove ; before }
$css = preg_replace('/;(?=\s*})/', '', $css);
// Remove space after , : ; { } */ >, but not after !*/
$css
gitextract_egawjsam/
├── .gitattributes
├── .github/
│ └── workflows/
│ └── tests.yml
├── .gitignore
├── CREDITS.md
├── LICENSE.md
├── README.md
├── composer.json
├── contracts/
│ ├── Database/
│ │ ├── CurrencyableInterface.php
│ │ ├── MultisiteGroupInterface.php
│ │ ├── MultisiteInterface.php
│ │ ├── NestedSetInterface.php
│ │ ├── SoftDeleteInterface.php
│ │ ├── SortableInterface.php
│ │ ├── SortableRelationInterface.php
│ │ ├── TranslatableInterface.php
│ │ ├── TreeInterface.php
│ │ └── ValidationInterface.php
│ ├── Element/
│ │ ├── FilterElement.php
│ │ ├── FormElement.php
│ │ └── ListElement.php
│ ├── Support/
│ │ └── OctoberPackage.php
│ └── Twig/
│ ├── CallsAnyMethod.php
│ └── CallsMethods.php
├── globals/
│ ├── AjaxException.php
│ ├── App.php
│ ├── ApplicationException.php
│ ├── Arr.php
│ ├── Artisan.php
│ ├── Auth.php
│ ├── Backend.php
│ ├── BackendAuth.php
│ ├── BackendMenu.php
│ ├── BackendUi.php
│ ├── Block.php
│ ├── Broadcast.php
│ ├── Bus.php
│ ├── Cache.php
│ ├── Cms.php
│ ├── Config.php
│ ├── Cookie.php
│ ├── Crypt.php
│ ├── Currency.php
│ ├── Date.php
│ ├── Db.php
│ ├── DbDongle.php
│ ├── Event.php
│ ├── File.php
│ ├── Flash.php
│ ├── ForbiddenException.php
│ ├── Form.php
│ ├── Hash.php
│ ├── Html.php
│ ├── Http.php
│ ├── Ini.php
│ ├── Input.php
│ ├── Lang.php
│ ├── Log.php
│ ├── Mail.php
│ ├── Manifest.php
│ ├── Markdown.php
│ ├── Model.php
│ ├── NotFoundException.php
│ ├── Notification.php
│ ├── Password.php
│ ├── Queue.php
│ ├── Redirect.php
│ ├── Redis.php
│ ├── Request.php
│ ├── Resizer.php
│ ├── Response.php
│ ├── Route.php
│ ├── Schema.php
│ ├── Seeder.php
│ ├── Session.php
│ ├── Site.php
│ ├── Storage.php
│ ├── Str.php
│ ├── System.php
│ ├── SystemException.php
│ ├── Twig.php
│ ├── Ui.php
│ ├── Url.php
│ ├── ValidationException.php
│ ├── Validator.php
│ ├── View.php
│ ├── Vite.php
│ └── Yaml.php
├── init/
│ ├── autoloader.php
│ ├── functions.php
│ ├── init.php
│ └── polyfills.php
├── init.php
├── phpbench.json
├── phpcs.xml
├── phpunit.xml
├── src/
│ ├── Assetic/
│ │ ├── Asset/
│ │ │ ├── AssetCache.php
│ │ │ ├── AssetCollection.php
│ │ │ ├── AssetCollectionInterface.php
│ │ │ ├── AssetInterface.php
│ │ │ ├── BaseAsset.php
│ │ │ ├── FileAsset.php
│ │ │ ├── GlobAsset.php
│ │ │ ├── HttpAsset.php
│ │ │ ├── Iterator/
│ │ │ │ ├── AssetCollectionFilterIterator.php
│ │ │ │ └── AssetCollectionIterator.php
│ │ │ └── StringAsset.php
│ │ ├── AssetManager.php
│ │ ├── AssetWriter.php
│ │ ├── AsseticServiceProvider.php
│ │ ├── Cache/
│ │ │ ├── CacheInterface.php
│ │ │ └── FilesystemCache.php
│ │ ├── Combiner.php
│ │ ├── Factory/
│ │ │ └── AssetFactory.php
│ │ ├── Filter/
│ │ │ ├── BaseCssFilter.php
│ │ │ ├── CssImportFilter.php
│ │ │ ├── CssMinFilter.php
│ │ │ ├── CssRewriteFilter.php
│ │ │ ├── DependencyExtractorInterface.php
│ │ │ ├── FilterCollection.php
│ │ │ ├── FilterInterface.php
│ │ │ ├── HashableInterface.php
│ │ │ ├── JSMinFilter.php
│ │ │ ├── JSqueezeFilter.php
│ │ │ ├── JavascriptImporter.php
│ │ │ ├── LessCompiler.php
│ │ │ ├── LessphpFilter.php
│ │ │ ├── ScssCompiler.php
│ │ │ ├── ScssphpFilter.php
│ │ │ └── StylesheetMinify.php
│ │ ├── FilterManager.php
│ │ ├── README.md
│ │ ├── Traits/
│ │ │ └── HasDeepHasher.php
│ │ └── Util/
│ │ ├── CssUtils.php
│ │ ├── LessUtils.php
│ │ ├── SassUtils.php
│ │ └── VarUtils.php
│ ├── Auth/
│ │ ├── AuthException.php
│ │ ├── Concerns/
│ │ │ ├── HasGuard.php
│ │ │ ├── HasImpersonation.php
│ │ │ ├── HasProviderProxy.php
│ │ │ ├── HasSession.php
│ │ │ ├── HasStatefulGuard.php
│ │ │ ├── HasThrottle.php
│ │ │ └── HasUser.php
│ │ ├── Manager.php
│ │ ├── Migrations/
│ │ │ ├── 2013_10_01_000001_Db_Users.php
│ │ │ ├── 2013_10_01_000002_Db_Groups.php
│ │ │ ├── 2013_10_01_000003_Db_Users_Groups.php
│ │ │ ├── 2013_10_01_000004_Db_Preferences.php
│ │ │ ├── 2013_10_01_000005_Db_Throttle.php
│ │ │ └── 2017_10_01_000006_Db_Roles.php
│ │ └── Models/
│ │ ├── Group.php
│ │ ├── Preferences.php
│ │ ├── Role.php
│ │ ├── Throttle.php
│ │ └── User.php
│ ├── Composer/
│ │ ├── ClassLoader.php
│ │ ├── ComposerManager.php
│ │ ├── Concerns/
│ │ │ ├── HasAssertions.php
│ │ │ ├── HasAutoloader.php
│ │ │ ├── HasOctoberCommands.php
│ │ │ ├── HasOutput.php
│ │ │ └── HasRequirements.php
│ │ └── resources/
│ │ ├── file_get_contents.php
│ │ └── putenv.php
│ ├── Config/
│ │ ├── FileLoader.php
│ │ ├── README.md
│ │ └── Repository.php
│ ├── Database/
│ │ ├── Attach/
│ │ │ ├── File.php
│ │ │ └── FileException.php
│ │ ├── Builder.php
│ │ ├── Collection.php
│ │ ├── Concerns/
│ │ │ ├── HasAttributes.php
│ │ │ ├── HasEagerLoadAttachRelation.php
│ │ │ ├── HasEvents.php
│ │ │ ├── HasJsonable.php
│ │ │ ├── HasNicerPagination.php
│ │ │ ├── HasRelationships.php
│ │ │ └── HasReplication.php
│ │ ├── Connections/
│ │ │ ├── Connection.php
│ │ │ ├── ExtendsConnection.php
│ │ │ ├── MariaDbConnection.php
│ │ │ ├── MySqlConnection.php
│ │ │ ├── PostgresConnection.php
│ │ │ ├── SQLiteConnection.php
│ │ │ └── SqlServerConnection.php
│ │ ├── Connectors/
│ │ │ └── ConnectionFactory.php
│ │ ├── DatabaseServiceProvider.php
│ │ ├── Dongle.php
│ │ ├── ExpandoModel.php
│ │ ├── Factories/
│ │ │ ├── Factory.php
│ │ │ └── HasFactory.php
│ │ ├── Migrations/
│ │ │ ├── 2013_10_01_000001_Db_Deferred_Bindings.php
│ │ │ ├── 2013_10_01_000002_Db_Files.php
│ │ │ ├── 2015_10_01_000003_Db_Revisions.php
│ │ │ └── 2026_10_01_000004_Db_Translate_Attributes.php
│ │ ├── Model.php
│ │ ├── ModelBehavior.php
│ │ ├── ModelException.php
│ │ ├── Models/
│ │ │ ├── DeferredBinding.php
│ │ │ ├── Revision.php
│ │ │ └── TranslateAttribute.php
│ │ ├── MorphPivot.php
│ │ ├── NestedTreeScope.php
│ │ ├── Pivot.php
│ │ ├── QueryBuilder.php
│ │ ├── README.md
│ │ ├── Relations/
│ │ │ ├── AttachMany.php
│ │ │ ├── AttachOne.php
│ │ │ ├── AttachOneOrMany.php
│ │ │ ├── BelongsTo.php
│ │ │ ├── BelongsToMany.php
│ │ │ ├── DeferOneOrMany.php
│ │ │ ├── DefinedConstraints.php
│ │ │ ├── HasMany.php
│ │ │ ├── HasManyThrough.php
│ │ │ ├── HasOne.php
│ │ │ ├── HasOneOrMany.php
│ │ │ ├── HasOneThrough.php
│ │ │ ├── MorphMany.php
│ │ │ ├── MorphOne.php
│ │ │ ├── MorphOneOrMany.php
│ │ │ ├── MorphTo.php
│ │ │ ├── MorphToMany.php
│ │ │ └── Relation.php
│ │ ├── Replicator.php
│ │ ├── Schema/
│ │ │ └── Blueprint.php
│ │ ├── Scopes/
│ │ │ ├── MultisiteGroupScope.php
│ │ │ ├── MultisiteScope.php
│ │ │ ├── NestedTreeScope.php
│ │ │ ├── SoftDeleteScope.php
│ │ │ └── SortableScope.php
│ │ ├── SortableScope.php
│ │ ├── Traits/
│ │ │ ├── BaseIdentifier.php
│ │ │ ├── Defaultable.php
│ │ │ ├── DeferredBinding.php
│ │ │ ├── Encryptable.php
│ │ │ ├── Hashable.php
│ │ │ ├── Multisite.php
│ │ │ ├── MultisiteGroup.php
│ │ │ ├── NestedTree.php
│ │ │ ├── Nullable.php
│ │ │ ├── Purgeable.php
│ │ │ ├── Revisionable.php
│ │ │ ├── SimpleTree.php
│ │ │ ├── Sluggable.php
│ │ │ ├── SluggableTree.php
│ │ │ ├── SoftDelete.php
│ │ │ ├── Sortable.php
│ │ │ ├── SortableRelation.php
│ │ │ ├── Translatable.php
│ │ │ ├── UserFootprints.php
│ │ │ └── Validation.php
│ │ ├── TreeCollection.php
│ │ ├── Updater.php
│ │ └── Updates/
│ │ ├── Migration.php
│ │ └── Seeder.php
│ ├── Element/
│ │ ├── Dash/
│ │ │ └── ReportDefinition.php
│ │ ├── ElementBase.php
│ │ ├── ElementHolder.php
│ │ ├── Filter/
│ │ │ └── ScopeDefinition.php
│ │ ├── Form/
│ │ │ ├── FieldDefinition.php
│ │ │ └── FieldsetDefinition.php
│ │ ├── Lists/
│ │ │ └── ColumnDefinition.php
│ │ ├── Navigation/
│ │ │ └── ItemDefinition.php
│ │ └── OptionDefinition.php
│ ├── Events/
│ │ ├── Dispatcher.php
│ │ ├── EventServiceProvider.php
│ │ ├── FakeDispatcher.php
│ │ └── PriorityDispatcher.php
│ ├── Exception/
│ │ ├── AjaxException.php
│ │ ├── ApplicationException.php
│ │ ├── ErrorHandler.php
│ │ ├── ExceptionBase.php
│ │ ├── ForbiddenException.php
│ │ ├── NotFoundException.php
│ │ ├── SystemException.php
│ │ └── ValidationException.php
│ ├── Extension/
│ │ ├── Container.php
│ │ ├── Extendable.php
│ │ ├── ExtendableTrait.php
│ │ ├── ExtensionBase.php
│ │ ├── ExtensionTrait.php
│ │ └── README.md
│ ├── Filesystem/
│ │ ├── Definitions.php
│ │ ├── Filesystem.php
│ │ ├── FilesystemServiceProvider.php
│ │ ├── README.md
│ │ └── Zip.php
│ ├── Flash/
│ │ ├── FlashBag.php
│ │ └── FlashServiceProvider.php
│ ├── Foundation/
│ │ ├── Application.php
│ │ ├── Bootstrap/
│ │ │ ├── HandleExceptions.php
│ │ │ ├── LoadConfiguration.php
│ │ │ └── RegisterOctober.php
│ │ ├── Configuration/
│ │ │ └── ApplicationBuilder.php
│ │ ├── Console/
│ │ │ ├── ClearCompiledCommand.php
│ │ │ ├── Kernel.php
│ │ │ ├── ProjectSetCommand.php
│ │ │ ├── RouteCacheCommand.php
│ │ │ ├── RouteListCommand.php
│ │ │ └── ServeCommand.php
│ │ ├── Exception/
│ │ │ └── Handler.php
│ │ ├── Http/
│ │ │ ├── Kernel.php
│ │ │ └── Middleware/
│ │ │ ├── CheckForMaintenanceMode.php
│ │ │ └── EncryptCookies.php
│ │ ├── Providers/
│ │ │ ├── AppServiceProvider.php
│ │ │ ├── ArtisanServiceProvider.php
│ │ │ ├── ConsoleSupportServiceProvider.php
│ │ │ ├── CoreServiceProvider.php
│ │ │ ├── DateServiceProvider.php
│ │ │ ├── ExecutionContextProvider.php
│ │ │ └── LogServiceProvider.php
│ │ └── resources/
│ │ └── server.php
│ ├── Halcyon/
│ │ ├── Builder.php
│ │ ├── Collection.php
│ │ ├── Concerns/
│ │ │ └── HasEvents.php
│ │ ├── Datasource/
│ │ │ ├── AutoDatasource.php
│ │ │ ├── Datasource.php
│ │ │ ├── DatasourceInterface.php
│ │ │ ├── DbDatasource.php
│ │ │ ├── FileDatasource.php
│ │ │ ├── Resolver.php
│ │ │ └── ResolverInterface.php
│ │ ├── Exception/
│ │ │ ├── CreateDirectoryException.php
│ │ │ ├── CreateFileException.php
│ │ │ ├── DeleteFileException.php
│ │ │ ├── FileExistsException.php
│ │ │ ├── InvalidDirectoryNameException.php
│ │ │ ├── InvalidExtensionException.php
│ │ │ ├── InvalidFileNameException.php
│ │ │ ├── MissingFileNameException.php
│ │ │ └── ModelException.php
│ │ ├── HalcyonServiceProvider.php
│ │ ├── Migrations/
│ │ │ └── 2021_10_01_000001_Db_Templates.php
│ │ ├── Model.php
│ │ ├── Processors/
│ │ │ ├── Processor.php
│ │ │ └── SectionParser.php
│ │ ├── README.md
│ │ └── Traits/
│ │ └── Validation.php
│ ├── Html/
│ │ ├── BlockBuilder.php
│ │ ├── FormBuilder.php
│ │ ├── Helper.php
│ │ ├── HtmlBuilder.php
│ │ ├── HtmlServiceProvider.php
│ │ ├── README.md
│ │ ├── UrlMixin.php
│ │ └── UrlServiceProvider.php
│ ├── Installer/
│ │ ├── Console/
│ │ │ ├── OctoberBuild.php
│ │ │ └── OctoberInstall.php
│ │ ├── GatewayClient.php
│ │ ├── InstallEventHandler.php
│ │ ├── InstallManager.php
│ │ └── Traits/
│ │ ├── SetupBuilder.php
│ │ └── SetupHelper.php
│ ├── Mail/
│ │ ├── FakeMailer.php
│ │ ├── MailManager.php
│ │ ├── MailParser.php
│ │ ├── MailServiceProvider.php
│ │ ├── Mailable.php
│ │ └── Mailer.php
│ ├── Network/
│ │ └── Http.php
│ ├── Parse/
│ │ ├── Bracket.php
│ │ ├── ComponentParser.php
│ │ ├── Ini.php
│ │ ├── Markdown.php
│ │ ├── MarkdownData.php
│ │ ├── ParseServiceProvider.php
│ │ ├── Parsedown/
│ │ │ ├── Parsedown.php
│ │ │ └── ParsedownExtra.php
│ │ ├── Syntax/
│ │ │ ├── FieldParser.php
│ │ │ ├── Parser.php
│ │ │ ├── README.md
│ │ │ └── SyntaxModelTrait.php
│ │ ├── Twig.php
│ │ └── Yaml.php
│ ├── Resize/
│ │ ├── ResizeBuilder.php
│ │ ├── ResizeServiceProvider.php
│ │ └── Resizer.php
│ ├── Router/
│ │ ├── CoreRedirector.php
│ │ ├── CoreRouter.php
│ │ ├── Helper.php
│ │ ├── README.md
│ │ ├── Router.php
│ │ ├── RoutingServiceProvider.php
│ │ └── Rule.php
│ ├── Scaffold/
│ │ ├── Console/
│ │ │ ├── CreateCommand.php
│ │ │ ├── CreateComponent.php
│ │ │ ├── CreateContentField.php
│ │ │ ├── CreateController.php
│ │ │ ├── CreateFactory.php
│ │ │ ├── CreateFilterWidget.php
│ │ │ ├── CreateFormWidget.php
│ │ │ ├── CreateJob.php
│ │ │ ├── CreateMigration.php
│ │ │ ├── CreateModel.php
│ │ │ ├── CreatePlugin.php
│ │ │ ├── CreateReportWidget.php
│ │ │ ├── CreateSeeder.php
│ │ │ ├── CreateTest.php
│ │ │ ├── command/
│ │ │ │ └── command.stub
│ │ │ ├── component/
│ │ │ │ ├── component.stub
│ │ │ │ └── default.stub
│ │ │ ├── contentfield/
│ │ │ │ └── contentfield.stub
│ │ │ ├── controller/
│ │ │ │ ├── _list_toolbar.stub
│ │ │ │ ├── config_form.stub
│ │ │ │ ├── config_list.stub
│ │ │ │ ├── controller.stub
│ │ │ │ ├── create.stub
│ │ │ │ ├── create_design.stub
│ │ │ │ ├── index.stub
│ │ │ │ ├── preview.stub
│ │ │ │ ├── preview_design.stub
│ │ │ │ ├── update.stub
│ │ │ │ └── update_design.stub
│ │ │ ├── factory/
│ │ │ │ ├── factory.stub
│ │ │ │ └── factory_app.stub
│ │ │ ├── filterwidget/
│ │ │ │ ├── filterwidget.stub
│ │ │ │ ├── javascript.stub
│ │ │ │ ├── partial.stub
│ │ │ │ ├── partial_form.stub
│ │ │ │ └── stylesheet.stub
│ │ │ ├── formwidget/
│ │ │ │ ├── formwidget.stub
│ │ │ │ ├── javascript.stub
│ │ │ │ ├── partial.stub
│ │ │ │ └── stylesheet.stub
│ │ │ ├── job/
│ │ │ │ ├── job.queued.stub
│ │ │ │ └── job.stub
│ │ │ ├── migration/
│ │ │ │ ├── create_app_table.stub
│ │ │ │ ├── create_table.stub
│ │ │ │ ├── update_app_table.stub
│ │ │ │ └── update_table.stub
│ │ │ ├── model/
│ │ │ │ ├── columns.stub
│ │ │ │ ├── fields.stub
│ │ │ │ └── model.stub
│ │ │ ├── plugin/
│ │ │ │ ├── composer.stub
│ │ │ │ ├── plugin.stub
│ │ │ │ └── version.stub
│ │ │ ├── reportwidget/
│ │ │ │ ├── reportwidget.stub
│ │ │ │ └── widget.stub
│ │ │ ├── seeder/
│ │ │ │ ├── create_app_seeder.stub
│ │ │ │ └── create_seeder.stub
│ │ │ └── test/
│ │ │ ├── phpunit.app.stub
│ │ │ ├── phpunit.plugin.stub
│ │ │ └── test.stub
│ │ ├── GeneratorCommand.php
│ │ ├── GeneratorCommandBase.php
│ │ └── ScaffoldServiceProvider.php
│ ├── Support/
│ │ ├── Arr.php
│ │ ├── Collection.php
│ │ ├── Date.php
│ │ ├── Debug/
│ │ │ └── HtmlDumper.php
│ │ ├── DefaultProviders.php
│ │ ├── Facade.php
│ │ ├── Facades/
│ │ │ ├── Auth.php
│ │ │ ├── Block.php
│ │ │ ├── Config.php
│ │ │ ├── Currency.php
│ │ │ ├── DbDongle.php
│ │ │ ├── Event.php
│ │ │ ├── File.php
│ │ │ ├── Flash.php
│ │ │ ├── Form.php
│ │ │ ├── Html.php
│ │ │ ├── Ini.php
│ │ │ ├── Input.php
│ │ │ ├── Mail.php
│ │ │ ├── Markdown.php
│ │ │ ├── Resizer.php
│ │ │ ├── Schema.php
│ │ │ ├── Site.php
│ │ │ ├── Str.php
│ │ │ ├── Twig.php
│ │ │ ├── Url.php
│ │ │ ├── Validator.php
│ │ │ └── Yaml.php
│ │ ├── ModuleServiceProvider.php
│ │ ├── README.md
│ │ ├── SafeCollection.php
│ │ ├── ServiceProvider.php
│ │ ├── Singleton.php
│ │ ├── Str.php
│ │ └── Traits/
│ │ ├── Emitter.php
│ │ ├── KeyParser.php
│ │ └── Singleton.php
│ ├── Translation/
│ │ ├── FileLoader.php
│ │ ├── README.md
│ │ ├── TranslationServiceProvider.php
│ │ └── Translator.php
│ └── Validation/
│ ├── Concerns/
│ │ └── FormatsMessages.php
│ ├── Factory.php
│ ├── ValidationServiceProvider.php
│ └── Validator.php
└── tests/
├── Assetic/
│ ├── MockAsset.php
│ └── StylesheetMinifyTest.php
├── Benchmark/
│ ├── Database/
│ │ └── DatabaseBench.php
│ ├── GeneralBench.php
│ ├── Parse/
│ │ └── ParseBench.php
│ └── Router/
│ └── RouterBench.php
├── Database/
│ ├── DongleTest.php
│ ├── ModelAddersTest.php
│ ├── SortableTest.php
│ ├── Traits/
│ │ ├── EncryptableTest.php
│ │ ├── SluggableTest.php
│ │ └── ValidationTest.php
│ └── UpdaterTest.php
├── Events/
│ └── EventDispatcherTest.php
├── Extension/
│ ├── ExtendableTest.php
│ └── ExtensionTest.php
├── Halcyon/
│ ├── DatasourceResolverTest.php
│ ├── HalcyonModelTest.php
│ ├── SectionParserTest.php
│ └── ValidationTraitTest.php
├── Html/
│ ├── HtmlBuilderTest.php
│ └── HtmlHelperTest.php
├── Mail/
│ └── MailerTest.php
├── Network/
│ └── HttpTest.php
├── Parse/
│ ├── BracketTest.php
│ ├── IniTest.php
│ ├── MarkdownTest.php
│ ├── SyntaxFieldParserTest.php
│ └── SyntaxParserTest.php
├── Router/
│ ├── RouteTest.php
│ └── RouterHelperTest.php
├── Scaffold/
│ └── ScaffoldBaseTest.php
├── Support/
│ ├── CountableTest.php
│ ├── EmitterTest.php
│ └── HttpBuildQueryTest.php
├── TestCase.php
├── Translation/
│ └── TranslatorTest.php
├── fixtures/
│ ├── config/
│ │ └── sample-config.php
│ ├── database/
│ │ └── SampleClass.php
│ ├── halcyon/
│ │ ├── models/
│ │ │ ├── Content.php
│ │ │ ├── Menu.php
│ │ │ └── Page.php
│ │ └── themes/
│ │ ├── theme1/
│ │ │ ├── content/
│ │ │ │ └── welcome.htm
│ │ │ ├── menus/
│ │ │ │ └── mainmenu.htm
│ │ │ └── pages/
│ │ │ ├── about.htm
│ │ │ ├── home.htm
│ │ │ └── level1/
│ │ │ ├── level2/
│ │ │ │ └── level3/
│ │ │ │ └── level4/
│ │ │ │ └── level5/
│ │ │ │ ├── contact.htm
│ │ │ │ └── level6/
│ │ │ │ └── unknown.htm
│ │ │ └── team.htm
│ │ └── theme2/
│ │ └── pages/
│ │ └── home.htm
│ ├── lang/
│ │ └── en/
│ │ └── lang.php
│ └── parse/
│ ├── array.ini
│ ├── basic.ini
│ ├── comments-clean.ini
│ ├── comments.ini
│ ├── complex.ini
│ ├── multilines-value.ini
│ ├── object.ini
│ ├── sections.ini
│ ├── simple.ini
│ └── subsections.ini
└── phpunit.xml
Showing preview only (289K chars total). Download the full file or copy to clipboard to get everything.
SYMBOL INDEX (3240 symbols across 464 files)
FILE: contracts/Database/CurrencyableInterface.php
type CurrencyableInterface (line 9) | interface CurrencyableInterface
method getCurrencyableAttributes (line 15) | public function getCurrencyableAttributes();
method isCurrencyableAttribute (line 21) | public function isCurrencyableAttribute($key);
method isCurrencyableEnabled (line 27) | public function isCurrencyableEnabled();
FILE: contracts/Database/MultisiteGroupInterface.php
type MultisiteGroupInterface (line 9) | interface MultisiteGroupInterface
method isMultisiteGroupEnabled (line 15) | public function isMultisiteGroupEnabled(): bool;
method getSiteGroupIdColumn (line 21) | public function getSiteGroupIdColumn(): string;
method getQualifiedSiteGroupIdColumn (line 27) | public function getQualifiedSiteGroupIdColumn(): string;
FILE: contracts/Database/MultisiteInterface.php
type MultisiteInterface (line 9) | interface MultisiteInterface
method findOrCreateForSite (line 14) | public function findOrCreateForSite(?string $siteId = null);
method isMultisiteEnabled (line 20) | public function isMultisiteEnabled();
method isMultisiteSyncEnabled (line 26) | public function isMultisiteSyncEnabled();
FILE: contracts/Database/NestedSetInterface.php
type NestedSetInterface (line 9) | interface NestedSetInterface
method moveAfter (line 14) | public function moveAfter($node);
method moveBefore (line 19) | public function moveBefore($node);
method makeChildOf (line 24) | public function makeChildOf($node);
FILE: contracts/Database/SoftDeleteInterface.php
type SoftDeleteInterface (line 9) | interface SoftDeleteInterface
method trashed (line 15) | public function trashed();
method restore (line 21) | public function restore();
method forceDelete (line 27) | public function forceDelete();
FILE: contracts/Database/SortableInterface.php
type SortableInterface (line 9) | interface SortableInterface
method setSortableOrder (line 14) | public function setSortableOrder($itemIds, $itemOrders = null);
FILE: contracts/Database/SortableRelationInterface.php
type SortableRelationInterface (line 9) | interface SortableRelationInterface
method setSortableRelationOrder (line 18) | public function setSortableRelationOrder($relationName, $itemIds, $ite...
method isSortableRelation (line 23) | public function isSortableRelation($relationName);
FILE: contracts/Database/TranslatableInterface.php
type TranslatableInterface (line 9) | interface TranslatableInterface
method getTranslatableAttributes (line 15) | public function getTranslatableAttributes();
method isTranslatableAttribute (line 21) | public function isTranslatableAttribute($key);
method isTranslatableEnabled (line 27) | public function isTranslatableEnabled();
FILE: contracts/Database/TreeInterface.php
type TreeInterface (line 11) | interface TreeInterface
method getChildren (line 16) | public function getChildren(): Collection;
method getChildCount (line 21) | public function getChildCount(): int;
method scopeGetNested (line 26) | public function scopeGetNested($query);
method scopeListsNested (line 31) | public function scopeListsNested($query, $column, $key = null, $indent...
FILE: contracts/Database/ValidationInterface.php
type ValidationInterface (line 9) | interface ValidationInterface
method setValidationAttributeNames (line 14) | public function setValidationAttributeNames($attributeNames);
method isAttributeRequired (line 20) | public function isAttributeRequired($attribute, $checkDependencies = t...
FILE: contracts/Element/FilterElement.php
type FilterElement (line 11) | interface FilterElement
method defineScope (line 16) | public function defineScope(string $scopeName, ?string $label = null):...
FILE: contracts/Element/FormElement.php
type FormElement (line 12) | interface FormElement
method addFormField (line 17) | public function addFormField(string $fieldName, ?string $label = null)...
method getFormFieldset (line 22) | public function getFormFieldset(): FieldsetDefinition;
method getFormContext (line 27) | public function getFormContext();
FILE: contracts/Element/ListElement.php
type ListElement (line 11) | interface ListElement
method defineColumn (line 16) | public function defineColumn(string $columnName, ?string $label = null...
FILE: contracts/Support/OctoberPackage.php
type OctoberPackage (line 9) | interface OctoberPackage
method registerMarkupTags (line 21) | public function registerMarkupTags();
method registerComponents (line 32) | public function registerComponents();
method registerPageSnippets (line 43) | public function registerPageSnippets();
method registerContentFields (line 54) | public function registerContentFields();
method registerNavigation (line 65) | public function registerNavigation();
method registerPermissions (line 79) | public function registerPermissions();
method registerSettings (line 90) | public function registerSettings();
method registerReportWidgets (line 109) | public function registerReportWidgets();
method registerFormWidgets (line 122) | public function registerFormWidgets();
method registerFilterWidgets (line 135) | public function registerFilterWidgets();
method registerListColumnTypes (line 143) | public function registerListColumnTypes();
method registerMailLayouts (line 156) | public function registerMailLayouts();
method registerMailTemplates (line 169) | public function registerMailTemplates();
method registerMailPartials (line 182) | public function registerMailPartials();
method registerSchedule (line 190) | public function registerSchedule($schedule);
FILE: contracts/Twig/CallsAnyMethod.php
type CallsAnyMethod (line 9) | interface CallsAnyMethod
FILE: contracts/Twig/CallsMethods.php
type CallsMethods (line 9) | interface CallsMethods
method getTwigMethodNames (line 14) | public function getTwigMethodNames(): array;
FILE: globals/AjaxException.php
class AjaxException (line 8) | class AjaxException extends October\Rain\Exception\AjaxException {}
FILE: globals/App.php
class App (line 8) | class App extends Illuminate\Support\Facades\App {}
FILE: globals/ApplicationException.php
class ApplicationException (line 8) | class ApplicationException extends October\Rain\Exception\ApplicationExc...
FILE: globals/Arr.php
class Arr (line 8) | class Arr extends October\Rain\Support\Arr {}
FILE: globals/Artisan.php
class Artisan (line 8) | class Artisan extends Illuminate\Support\Facades\Artisan {}
FILE: globals/Auth.php
class Auth (line 8) | class Auth extends October\Rain\Support\Facades\Auth {}
FILE: globals/Backend.php
class Backend (line 8) | class Backend extends Backend\Facades\Backend {}
FILE: globals/BackendAuth.php
class BackendAuth (line 8) | class BackendAuth extends Backend\Facades\BackendAuth {}
FILE: globals/BackendMenu.php
class BackendMenu (line 8) | class BackendMenu extends Backend\Facades\BackendMenu {}
FILE: globals/BackendUi.php
class BackendUi (line 6) | class BackendUi extends Backend\Facades\BackendUi {}
FILE: globals/Block.php
class Block (line 8) | class Block extends October\Rain\Support\Facades\Block {}
FILE: globals/Broadcast.php
class Broadcast (line 8) | class Broadcast extends Illuminate\Support\Facades\Broadcast {}
FILE: globals/Bus.php
class Bus (line 8) | class Bus extends Illuminate\Support\Facades\Bus {}
FILE: globals/Cache.php
class Cache (line 9) | class Cache extends Illuminate\Support\Facades\Cache {}
FILE: globals/Cms.php
class Cms (line 8) | class Cms extends Cms\Facades\Cms {}
FILE: globals/Config.php
class Config (line 8) | class Config extends Illuminate\Support\Facades\Config {}
FILE: globals/Cookie.php
class Cookie (line 8) | class Cookie extends Illuminate\Support\Facades\Cookie {}
FILE: globals/Crypt.php
class Crypt (line 8) | class Crypt extends Illuminate\Support\Facades\Crypt {}
FILE: globals/Currency.php
class Currency (line 8) | class Currency extends October\Rain\Support\Facades\Currency {}
FILE: globals/Date.php
class Date (line 8) | class Date extends Illuminate\Support\Facades\Date {}
FILE: globals/Db.php
class Db (line 9) | class Db extends Illuminate\Support\Facades\DB {}
FILE: globals/DbDongle.php
class DbDongle (line 8) | class DbDongle extends October\Rain\Support\Facades\DbDongle {}
FILE: globals/Event.php
class Event (line 8) | class Event extends October\Rain\Support\Facades\Event {}
FILE: globals/File.php
class File (line 8) | class File extends October\Rain\Support\Facades\File {}
FILE: globals/Flash.php
class Flash (line 8) | class Flash extends October\Rain\Support\Facades\Flash {}
FILE: globals/ForbiddenException.php
class ForbiddenException (line 8) | class ForbiddenException extends October\Rain\Exception\ForbiddenExcepti...
FILE: globals/Form.php
class Form (line 8) | class Form extends October\Rain\Support\Facades\Form {}
FILE: globals/Hash.php
class Hash (line 8) | class Hash extends Illuminate\Support\Facades\Hash {}
FILE: globals/Html.php
class Html (line 8) | class Html extends October\Rain\Support\Facades\Html {}
FILE: globals/Http.php
class Http (line 8) | class Http extends Illuminate\Support\Facades\Http {}
FILE: globals/Ini.php
class Ini (line 8) | class Ini extends October\Rain\Support\Facades\Ini {}
FILE: globals/Input.php
class Input (line 8) | class Input extends October\Rain\Support\Facades\Input {}
FILE: globals/Lang.php
class Lang (line 8) | class Lang extends Illuminate\Support\Facades\Lang {}
FILE: globals/Log.php
class Log (line 8) | class Log extends Illuminate\Support\Facades\Log {}
FILE: globals/Mail.php
class Mail (line 8) | class Mail extends October\Rain\Support\Facades\Mail {}
FILE: globals/Manifest.php
class Manifest (line 8) | class Manifest extends System\Facades\Manifest {}
FILE: globals/Markdown.php
class Markdown (line 8) | class Markdown extends October\Rain\Support\Facades\Markdown {}
FILE: globals/Model.php
class Model (line 8) | class Model extends October\Rain\Database\Model {}
FILE: globals/NotFoundException.php
class NotFoundException (line 8) | class NotFoundException extends October\Rain\Exception\NotFoundException {}
FILE: globals/Notification.php
class Notification (line 8) | class Notification extends Illuminate\Support\Facades\Notification {}
FILE: globals/Password.php
class Password (line 8) | class Password extends Illuminate\Support\Facades\Password {}
FILE: globals/Queue.php
class Queue (line 8) | class Queue extends Illuminate\Support\Facades\Queue {}
FILE: globals/Redirect.php
class Redirect (line 8) | class Redirect extends Illuminate\Support\Facades\Redirect {}
FILE: globals/Redis.php
class Redis (line 8) | class Redis extends Illuminate\Support\Facades\Redis {}
FILE: globals/Request.php
class Request (line 8) | class Request extends Illuminate\Support\Facades\Request {}
FILE: globals/Resizer.php
class Resizer (line 8) | class Resizer extends October\Rain\Support\Facades\Resizer {}
FILE: globals/Response.php
class Response (line 8) | class Response extends Illuminate\Support\Facades\Response {}
FILE: globals/Route.php
class Route (line 8) | class Route extends Illuminate\Support\Facades\Route {}
FILE: globals/Schema.php
class Schema (line 8) | class Schema extends October\Rain\Support\Facades\Schema {}
FILE: globals/Seeder.php
class Seeder (line 8) | class Seeder extends October\Rain\Database\Updates\Seeder {}
FILE: globals/Session.php
class Session (line 8) | class Session extends Illuminate\Support\Facades\Session {}
FILE: globals/Site.php
class Site (line 8) | class Site extends October\Rain\Support\Facades\Site {}
FILE: globals/Storage.php
class Storage (line 8) | class Storage extends Illuminate\Support\Facades\Storage {}
FILE: globals/Str.php
class Str (line 8) | class Str extends October\Rain\Support\Str {}
FILE: globals/System.php
class System (line 8) | class System extends System\Facades\System {}
FILE: globals/SystemException.php
class SystemException (line 8) | class SystemException extends October\Rain\Exception\SystemException {}
FILE: globals/Twig.php
class Twig (line 8) | class Twig extends October\Rain\Support\Facades\Twig {}
FILE: globals/Ui.php
class Ui (line 8) | class Ui extends System\Facades\Ui {}
FILE: globals/Url.php
class Url (line 8) | class Url extends October\Rain\Support\Facades\Url {}
FILE: globals/ValidationException.php
class ValidationException (line 8) | class ValidationException extends October\Rain\Exception\ValidationExcep...
FILE: globals/Validator.php
class Validator (line 8) | class Validator extends October\Rain\Support\Facades\Validator {}
FILE: globals/View.php
class View (line 8) | class View extends Illuminate\Support\Facades\View {}
FILE: globals/Vite.php
class Vite (line 8) | class Vite extends Illuminate\Support\Facades\Vite {}
FILE: globals/Yaml.php
class Yaml (line 8) | class Yaml extends October\Rain\Support\Facades\Yaml {}
FILE: init/functions.php
function input (line 21) | function input($name = null, $default = null)
function post (line 40) | function post($name = null, $default = null)
function get (line 63) | function get($name = null, $default = null)
function files (line 82) | function files($name = null, $default = null)
function trace_log (line 101) | function trace_log()
function traceLog (line 124) | function traceLog()
function trace_sql (line 135) | function trace_sql()
function traceSql (line 173) | function traceSql()
function traceBack (line 183) | function traceBack(int $distance = 25)
function trace_back (line 194) | function trace_back(int $distance = 25)
function plugins_path (line 206) | function plugins_path($path = '')
function cache_path (line 218) | function cache_path($path = '')
function themes_path (line 230) | function themes_path($path = '')
function temp_path (line 242) | function temp_path($path = '')
function e (line 255) | function e($value, $doubleEncode = false)
function trans (line 273) | function trans($id = null, $parameters = [], $locale = null)
function array_build (line 286) | function array_build($array, callable $callback)
function collect (line 298) | function collect($value = null)
function array_add (line 312) | function array_add($array, $key, $value)
function array_collapse (line 324) | function array_collapse($array)
function array_divide (line 336) | function array_divide($array)
function array_dot (line 349) | function array_dot($array, $prepend = '')
function array_except (line 362) | function array_except($array, $keys)
function array_flatten (line 375) | function array_flatten($array, $depth = PHP_INT_MAX)
function array_forget (line 388) | function array_forget(&$array, $keys)
function array_get (line 402) | function array_get($array, $key, $default = null)
function array_has (line 415) | function array_has($array, $keys)
function array_only (line 428) | function array_only($array, $keys)
function array_pluck (line 442) | function array_pluck($array, $value, $key = null)
function array_prepend (line 456) | function array_prepend($array, $value, $key = null)
function array_pull (line 470) | function array_pull(&$array, $key, $default = null)
function array_random (line 483) | function array_random($array, $num = null)
function array_set (line 498) | function array_set(&$array, $key, $value)
function array_sort (line 511) | function array_sort($array, $callback = null)
function array_sort_recursive (line 523) | function array_sort_recursive($array)
function array_where (line 536) | function array_where($array, callable $callback)
function array_wrap (line 548) | function array_wrap($value)
function camel_case (line 560) | function camel_case($value)
function kebab_case (line 572) | function kebab_case($value)
function snake_case (line 585) | function snake_case($value, $delimiter = '_')
function str_after (line 598) | function str_after($subject, $search)
function str_before (line 611) | function str_before($subject, $search)
function str_finish (line 624) | function str_finish($value, $cap)
function str_is (line 637) | function str_is($pattern, $value)
function str_limit (line 651) | function str_limit($value, $limit = 100, $end = '...')
function str_plural (line 664) | function str_plural($value, $count = 2)
function str_random (line 678) | function str_random($length = 16)
function str_replace_array (line 692) | function str_replace_array($search, array $replace, $subject)
function str_replace_first (line 706) | function str_replace_first($search, $replace, $subject)
function str_replace_last (line 720) | function str_replace_last($search, $replace, $subject)
function str_singular (line 732) | function str_singular($value)
function str_slug (line 746) | function str_slug($title, $separator = '-', $language = 'en')
function str_start (line 759) | function str_start($value, $prefix)
function studly_case (line 771) | function studly_case($value)
function title_case (line 783) | function title_case($value)
function link_to (line 799) | function link_to($url, $title = null, $attributes = [], $secure = null)
function link_to_asset (line 815) | function link_to_asset($url, $title = null, $attributes = [], $secure = ...
function link_to_route (line 831) | function link_to_route($name, $title = null, $parameters = [], $attribut...
function link_to_action (line 847) | function link_to_action($action, $title = null, $parameters = [], $attri...
function starts_with (line 857) | function starts_with($haystack, $needles)
function ends_with (line 867) | function ends_with($haystack, $needles)
function asset_version (line 886) | function asset_version(string $path): string
FILE: init/polyfills.php
function http_build_url (line 62) | function http_build_url($url, $replace = [], $flags = HTTP_URL_REPLACE, ...
FILE: src/Assetic/Asset/AssetCache.php
class AssetCache (line 12) | class AssetCache implements AssetInterface
method __construct (line 27) | public function __construct(AssetInterface $asset, CacheInterface $cache)
method ensureFilter (line 36) | public function ensureFilter(FilterInterface $filter): void
method getFilters (line 44) | public function getFilters(): array
method clearFilters (line 52) | public function clearFilters(): void
method load (line 60) | public function load(?FilterInterface $additionalFilter = null): void
method dump (line 76) | public function dump(?FilterInterface $additionalFilter = null): string
method getContent (line 92) | public function getContent(): ?string
method setContent (line 100) | public function setContent(?string $content): void
method getSourceRoot (line 108) | public function getSourceRoot(): ?string
method getSourcePath (line 116) | public function getSourcePath(): ?string
method getSourceDirectory (line 124) | public function getSourceDirectory(): ?string
method getTargetPath (line 132) | public function getTargetPath(): ?string
method setTargetPath (line 140) | public function setTargetPath(?string $targetPath): void
method getLastModified (line 148) | public function getLastModified(): ?int
method getVars (line 156) | public function getVars(): array
method setValues (line 164) | public function setValues(array $values): void
method getValues (line 172) | public function getValues(): array
method getCacheKey (line 193) | protected static function getCacheKey(AssetInterface $asset, ?FilterIn...
FILE: src/Assetic/Asset/AssetCollection.php
class AssetCollection (line 18) | class AssetCollection implements IteratorAggregate, AssetCollectionInter...
method __construct (line 68) | public function __construct(array $assets = [], array $filters = [], ?...
method __clone (line 85) | public function __clone()
method all (line 94) | public function all(): array
method add (line 102) | public function add(AssetInterface $asset): void
method removeLeaf (line 110) | public function removeLeaf(AssetInterface $needle, bool $graceful = fa...
method replaceLeaf (line 135) | public function replaceLeaf(AssetInterface $needle, AssetInterface $re...
method ensureFilter (line 161) | public function ensureFilter(FilterInterface $filter): void
method getFilters (line 169) | public function getFilters(): array
method clearFilters (line 177) | public function clearFilters(): void
method load (line 186) | public function load(?FilterInterface $additionalFilter = null): void
method dump (line 201) | public function dump(?FilterInterface $additionalFilter = null): string
method getContent (line 215) | public function getContent(): ?string
method setContent (line 223) | public function setContent(?string $content): void
method getSourceRoot (line 231) | public function getSourceRoot(): ?string
method getSourcePath (line 239) | public function getSourcePath(): ?string
method getSourceDirectory (line 248) | public function getSourceDirectory(): ?string
method getTargetPath (line 260) | public function getTargetPath(): ?string
method setTargetPath (line 268) | public function setTargetPath(?string $targetPath): void
method getLastModified (line 278) | public function getLastModified(): ?int
method getIterator (line 298) | public function getIterator(): Traversable
method getVars (line 306) | public function getVars(): array
method setValues (line 314) | public function setValues(array $values): void
method getValues (line 326) | public function getValues(): array
FILE: src/Assetic/Asset/AssetCollectionInterface.php
type AssetCollectionInterface (line 8) | interface AssetCollectionInterface extends AssetInterface, \Traversable
method all (line 15) | public function all(): array;
method add (line 22) | public function add(AssetInterface $asset): void;
method removeLeaf (line 34) | public function removeLeaf(AssetInterface $leaf, bool $graceful = fals...
method replaceLeaf (line 47) | public function replaceLeaf(AssetInterface $needle, AssetInterface $re...
FILE: src/Assetic/Asset/AssetInterface.php
type AssetInterface (line 10) | interface AssetInterface
method ensureFilter (line 17) | public function ensureFilter(FilterInterface $filter): void;
method getFilters (line 24) | public function getFilters(): array;
method clearFilters (line 29) | public function clearFilters(): void;
method load (line 38) | public function load(?FilterInterface $additionalFilter = null): void;
method dump (line 54) | public function dump(?FilterInterface $additionalFilter = null): string;
method getContent (line 61) | public function getContent(): ?string;
method setContent (line 70) | public function setContent(?string $content): void;
method getSourceRoot (line 86) | public function getSourceRoot(): ?string;
method getSourcePath (line 102) | public function getSourcePath(): ?string;
method getSourceDirectory (line 112) | public function getSourceDirectory(): ?string;
method getTargetPath (line 119) | public function getTargetPath(): ?string;
method setTargetPath (line 126) | public function setTargetPath(?string $targetPath): void;
method getLastModified (line 133) | public function getLastModified(): ?int;
method getVars (line 140) | public function getVars(): array;
method setValues (line 147) | public function setValues(array $values): void;
method getValues (line 154) | public function getValues(): array;
FILE: src/Assetic/Asset/BaseAsset.php
class BaseAsset (line 14) | abstract class BaseAsset implements AssetInterface
method __construct (line 69) | public function __construct(array $filters = [], ?string $sourceRoot =...
method __clone (line 82) | public function __clone()
method ensureFilter (line 87) | public function ensureFilter(FilterInterface $filter): void
method getFilters (line 92) | public function getFilters(): array
method clearFilters (line 97) | public function clearFilters(): void
method doLoad (line 108) | protected function doLoad(?string $content, ?FilterInterface $addition...
method dump (line 124) | public function dump(?FilterInterface $additionalFilter = null): string
method getContent (line 141) | public function getContent(): ?string
method setContent (line 146) | public function setContent(?string $content): void
method getSourceRoot (line 151) | public function getSourceRoot(): ?string
method getSourcePath (line 156) | public function getSourcePath(): ?string
method getSourceDirectory (line 161) | public function getSourceDirectory(): ?string
method getTargetPath (line 166) | public function getTargetPath(): ?string
method setTargetPath (line 171) | public function setTargetPath(?string $targetPath): void
method getVars (line 184) | public function getVars(): array
method setValues (line 189) | public function setValues(array $values): void
method getValues (line 201) | public function getValues(): array
FILE: src/Assetic/Asset/FileAsset.php
class FileAsset (line 14) | class FileAsset extends BaseAsset
method __construct (line 32) | public function __construct(string $source, array $filters = [], ?stri...
method load (line 56) | public function load(?FilterInterface $additionalFilter = null): void
method getLastModified (line 70) | public function getLastModified(): ?int
FILE: src/Assetic/Asset/GlobAsset.php
class GlobAsset (line 12) | class GlobAsset extends AssetCollection
method __construct (line 32) | public function __construct($globs, array $filters = [], ?string $root...
method all (line 43) | public function all(): array
method load (line 55) | public function load(?FilterInterface $additionalFilter = null): void
method dump (line 67) | public function dump(?FilterInterface $additionalFilter = null): string
method getLastModified (line 79) | public function getLastModified(): ?int
method getIterator (line 91) | public function getIterator(): Traversable
method setValues (line 103) | public function setValues(array $values): void
method initialize (line 112) | private function initialize()
FILE: src/Assetic/Asset/HttpAsset.php
class HttpAsset (line 13) | class HttpAsset extends BaseAsset
method __construct (line 35) | public function __construct(string $sourceUrl, array $filters = [], bo...
method load (line 56) | public function load(?FilterInterface $additionalFilter = null): void
method getLastModified (line 72) | public function getLastModified(): ?int
FILE: src/Assetic/Asset/Iterator/AssetCollectionFilterIterator.php
class AssetCollectionFilterIterator (line 13) | class AssetCollectionFilterIterator extends RecursiveFilterIterator
method __construct (line 25) | public function __construct(AssetCollectionIterator $iterator, array $...
method accept (line 41) | public function accept(): bool
method getChildren (line 71) | public function getChildren(): ?RecursiveFilterIterator
FILE: src/Assetic/Asset/Iterator/AssetCollectionIterator.php
class AssetCollectionIterator (line 15) | class AssetCollectionIterator implements RecursiveIterator
method __construct (line 45) | public function __construct(AssetCollectionInterface $coll, SplObjectS...
method current (line 68) | public function current($raw = false): mixed
method key (line 98) | public function key(): mixed
method next (line 103) | public function next(): void
method rewind (line 108) | public function rewind(): void
method valid (line 113) | public function valid(): bool
method hasChildren (line 118) | public function hasChildren(): bool
method getChildren (line 126) | public function getChildren(): ?RecursiveIterator
method removeDuplicateVar (line 131) | private function removeDuplicateVar($name)
FILE: src/Assetic/Asset/StringAsset.php
class StringAsset (line 10) | class StringAsset extends BaseAsset
method __construct (line 30) | public function __construct(string $content, array $filters = [], ?str...
method load (line 40) | public function load(?FilterInterface $additionalFilter = null): void
method setLastModified (line 48) | public function setLastModified(?int $lastModified): void
method getLastModified (line 56) | public function getLastModified(): ?int
FILE: src/Assetic/AssetManager.php
class AssetManager (line 11) | class AssetManager
method get (line 25) | public function get(string $name): AssetInterface
method has (line 40) | public function has(string $name): bool
method set (line 52) | public function set(string $name, AssetInterface $asset): void
method getNames (line 66) | public function getNames(): array
method clear (line 74) | public function clear(): void
FILE: src/Assetic/AssetWriter.php
class AssetWriter (line 14) | class AssetWriter
method __construct (line 33) | public function __construct(string $dir, array $values = [])
method writeManagerAssets (line 50) | public function writeManagerAssets(AssetManager $am): void
method writeAsset (line 60) | public function writeAsset(AssetInterface $asset): void
method write (line 79) | protected static function write(string $path, string $contents): void
FILE: src/Assetic/AsseticServiceProvider.php
class AsseticServiceProvider (line 12) | class AsseticServiceProvider extends ServiceProvider implements Deferrab...
method register (line 17) | public function register(): void
method provides (line 30) | public function provides(): array
FILE: src/Assetic/Cache/CacheInterface.php
type CacheInterface (line 8) | interface CacheInterface
method has (line 17) | public function has($key);
method get (line 26) | public function get($key);
method set (line 34) | public function set($key, $value);
method remove (line 41) | public function remove($key);
FILE: src/Assetic/Cache/FilesystemCache.php
class FilesystemCache (line 14) | class FilesystemCache implements CacheInterface
method __construct (line 24) | public function __construct($dir)
method has (line 32) | public function has($key)
method get (line 40) | public function get($key)
method set (line 54) | public function set($key, $value)
method remove (line 72) | public function remove($key)
FILE: src/Assetic/Combiner.php
class Combiner (line 15) | class Combiner
method parse (line 42) | public function parse(array $assets, array $options = []): string
method prepareCombiner (line 50) | public function prepareCombiner(array $assets, array $options = []): A...
method registerDefaultFilters (line 103) | public function registerDefaultFilters(): void
method setStoragePath (line 122) | public function setStoragePath(?string $path): void
method setLocalPath (line 130) | public function setLocalPath(?string $path): void
method registerFilter (line 146) | public function registerFilter($extension, $filter, $isProduction = fa...
method resetFilters (line 174) | public function resetFilters($extension = null)
method getFilters (line 191) | public function getFilters(?string $extension = null, bool $isProducti...
FILE: src/Assetic/Factory/AssetFactory.php
class AssetFactory (line 19) | class AssetFactory
method __construct (line 52) | public function __construct($root, $debug = false)
method setDebug (line 64) | public function setDebug($debug)
method isDebug (line 74) | public function isDebug()
method setDefaultOutput (line 84) | public function setDefaultOutput($output)
method getAssetManager (line 94) | public function getAssetManager()
method setAssetManager (line 104) | public function setAssetManager(AssetManager $am)
method getFilterManager (line 114) | public function getFilterManager()
method setFilterManager (line 124) | public function setFilterManager(FilterManager $fm)
method createAsset (line 148) | public function createAsset($inputs = [], $filters = [], array $option...
method generateAssetName (line 243) | public function generateAssetName($inputs, $filters, $options = []): s...
method getLastModified (line 257) | public function getLastModified(AssetInterface $asset)
method parseInput (line 308) | protected function parseInput($input, array $options = [])
method createAssetCollection (line 337) | protected function createAssetCollection(array $assets = [], array $op...
method createHttpAsset (line 345) | protected function createHttpAsset($sourceUrl, $vars)
method createGlobAsset (line 353) | protected function createGlobAsset($glob, $root = null, $vars = [])
method createFileAsset (line 361) | protected function createFileAsset($source, $root = null, $path = null...
method getFilter (line 369) | protected function getFilter($name)
method isAbsolutePath (line 381) | private static function isAbsolutePath($path)
method findRootDir (line 394) | private static function findRootDir($path, array $roots)
FILE: src/Assetic/Filter/BaseCssFilter.php
class BaseCssFilter (line 10) | abstract class BaseCssFilter implements FilterInterface
method filterReferences (line 15) | protected function filterReferences(string $content, callable $callbac...
method filterUrls (line 23) | protected function filterUrls(string $content, callable $callback): st...
method filterImports (line 31) | protected function filterImports(string $content, callable $callback, ...
method filterIEFilters (line 39) | protected function filterIEFilters(string $content, callable $callback...
FILE: src/Assetic/Filter/CssImportFilter.php
class CssImportFilter (line 15) | class CssImportFilter extends BaseCssFilter implements HashableInterface...
method __construct (line 32) | public function __construct(?FilterInterface $importFilter = null)
method filterLoad (line 40) | public function filterLoad(AssetInterface $asset): void
method filterDump (line 110) | public function filterDump(AssetInterface $asset): void
method hashAsset (line 117) | public function hashAsset($asset, $localPath)
method setHash (line 138) | public function setHash($hash)
method hash (line 147) | public function hash()
method getAllChildren (line 155) | public function getAllChildren(AssetFactory $factory, $content, $loadP...
method getChildren (line 170) | public function getChildren(AssetFactory $factory, $content, $loadPath...
FILE: src/Assetic/Filter/CssMinFilter.php
class CssMinFilter (line 11) | class CssMinFilter implements FilterInterface
method __construct (line 16) | public function __construct()
method setFilters (line 22) | public function setFilters(array $filters)
method setFilter (line 27) | public function setFilter($name, $value)
method setPlugins (line 32) | public function setPlugins(array $plugins)
method setPlugin (line 37) | public function setPlugin($name, $value)
method filterLoad (line 42) | public function filterLoad(AssetInterface $asset): void
method filterDump (line 46) | public function filterDump(AssetInterface $asset): void
FILE: src/Assetic/Filter/CssRewriteFilter.php
class CssRewriteFilter (line 10) | class CssRewriteFilter extends BaseCssFilter
method filterLoad (line 15) | public function filterLoad(AssetInterface $asset): void
method filterDump (line 22) | public function filterDump(AssetInterface $asset): void
FILE: src/Assetic/Filter/DependencyExtractorInterface.php
type DependencyExtractorInterface (line 11) | interface DependencyExtractorInterface extends FilterInterface
method getChildren (line 22) | public function getChildren(AssetFactory $factory, $content, $loadPath...
FILE: src/Assetic/Filter/FilterCollection.php
class FilterCollection (line 11) | class FilterCollection implements FilterInterface, \IteratorAggregate, \...
method __construct (line 21) | public function __construct(array $filters = [])
method ensure (line 34) | public function ensure(FilterInterface $filter): void
method all (line 48) | public function all(): array
method clear (line 56) | public function clear(): void
method filterLoad (line 64) | public function filterLoad(AssetInterface $asset): void
method filterDump (line 74) | public function filterDump(AssetInterface $asset): void
method getIterator (line 84) | public function getIterator(): Traversable
method count (line 92) | public function count(): int
FILE: src/Assetic/Filter/FilterInterface.php
type FilterInterface (line 10) | interface FilterInterface
method filterLoad (line 17) | public function filterLoad(AssetInterface $asset): void;
method filterDump (line 24) | public function filterDump(AssetInterface $asset): void;
FILE: src/Assetic/Filter/HashableInterface.php
type HashableInterface (line 8) | interface HashableInterface
method hash (line 15) | public function hash();
FILE: src/Assetic/Filter/JSMinFilter.php
class JSMinFilter (line 15) | class JSMinFilter implements FilterInterface
method filterLoad (line 20) | public function filterLoad(AssetInterface $asset): void
method filterDump (line 28) | public function filterDump(AssetInterface $asset): void
FILE: src/Assetic/Filter/JSqueezeFilter.php
class JSqueezeFilter (line 12) | class JSqueezeFilter implements FilterInterface
method __construct (line 42) | public function __construct()
method setSingleLine (line 54) | public function setSingleLine($bool)
method setSpecialVarRx (line 61) | public function setSpecialVarRx($specialVarRx)
method keepImportantComments (line 70) | public function keepImportantComments($bool)
method filterLoad (line 75) | public function filterLoad(AssetInterface $asset): void
method filterDump (line 79) | public function filterDump(AssetInterface $asset): void
FILE: src/Assetic/Filter/JavascriptImporter.php
class JavascriptImporter (line 18) | class JavascriptImporter implements FilterInterface
method filterLoad (line 43) | public function filterLoad(AssetInterface $asset): void
method filterDump (line 50) | public function filterDump(AssetInterface $asset): void
method parse (line 63) | protected function parse(string $content): string
method directiveInclude (line 94) | protected function directiveInclude(string $data, bool $required = fal...
method directiveRequire (line 159) | protected function directiveRequire(string $data): string
method directiveDefine (line 167) | protected function directiveDefine(string $data): string
FILE: src/Assetic/Filter/LessCompiler.php
class LessCompiler (line 18) | class LessCompiler implements FilterInterface, HashableInterface, Depend...
method setPresets (line 33) | public function setPresets(array $presets)
method filterLoad (line 41) | public function filterLoad(AssetInterface $asset): void
method filterDump (line 59) | public function filterDump(AssetInterface $asset): void
method hashAsset (line 66) | public function hashAsset($asset, $localPath)
method setHash (line 87) | public function setHash($hash)
method hash (line 96) | public function hash()
method getChildren (line 104) | public function getChildren(AssetFactory $factory, $content, $loadPath...
FILE: src/Assetic/Filter/LessphpFilter.php
class LessphpFilter (line 18) | class LessphpFilter implements DependencyExtractorInterface
method addLoadPath (line 38) | public function addLoadPath($path)
method setLoadPaths (line 48) | public function setLoadPaths(array $loadPaths)
method setPresets (line 53) | public function setPresets(array $presets)
method setOptions (line 58) | public function setOptions(array $options)
method setFormatter (line 66) | public function setFormatter($formatter)
method setPreserveComments (line 74) | public function setPreserveComments($preserveComments)
method filterLoad (line 79) | public function filterLoad(AssetInterface $asset): void
method registerFunction (line 109) | public function registerFunction($name, $callable)
method filterDump (line 114) | public function filterDump(AssetInterface $asset): void
method getChildren (line 118) | public function getChildren(AssetFactory $factory, $content, $loadPath...
FILE: src/Assetic/Filter/ScssCompiler.php
class ScssCompiler (line 18) | class ScssCompiler extends ScssphpFilter implements HashableInterface, D...
method __construct (line 26) | public function __construct()
method setPresets (line 37) | public function setPresets(array $presets)
method setVariables (line 42) | public function setVariables(array $variables)
method addVariable (line 47) | public function addVariable($variable)
method filterLoad (line 52) | public function filterLoad(AssetInterface $asset): void
method setHash (line 58) | public function setHash($hash)
method hash (line 67) | public function hash()
method hashAsset (line 72) | public function hashAsset($asset, $localPath)
FILE: src/Assetic/Filter/ScssphpFilter.php
class ScssphpFilter (line 21) | class ScssphpFilter implements DependencyExtractorInterface
method setFormatter (line 46) | public function setFormatter($formatter)
method setVariables (line 54) | public function setVariables(array $variables)
method addVariable (line 62) | public function addVariable($variable)
method setImportPaths (line 70) | public function setImportPaths(array $paths)
method addImportPath (line 78) | public function addImportPath($path)
method registerFunction (line 86) | public function registerFunction($name, $callable)
method filterLoad (line 94) | public function filterLoad(AssetInterface $asset): void
method filterDump (line 143) | public function filterDump(AssetInterface $asset): void
method getChildren (line 150) | public function getChildren(AssetFactory $factory, $content, $loadPath...
method getSourceMapLocalPath (line 180) | protected function getSourceMapLocalPath(): string
method getSourceMapPublicUrl (line 195) | protected function getSourceMapPublicUrl(): string
FILE: src/Assetic/Filter/StylesheetMinify.php
class StylesheetMinify (line 13) | class StylesheetMinify implements FilterInterface
method filterLoad (line 18) | public function filterLoad(AssetInterface $asset): void
method filterDump (line 25) | public function filterDump(AssetInterface $asset): void
method minify (line 35) | protected function minify(string $css): string
FILE: src/Assetic/FilterManager.php
class FilterManager (line 12) | class FilterManager
method set (line 22) | public function set(string $alias, FilterInterface $filter): void
method get (line 32) | public function get(string $alias): FilterInterface
method has (line 44) | public function has(string $alias): bool
method getNames (line 52) | public function getNames(): array
method checkName (line 62) | protected function checkName(string $name): void
FILE: src/Assetic/Traits/HasDeepHasher.php
type HasDeepHasher (line 12) | trait HasDeepHasher
method getDeepHashLastModified (line 17) | public function getDeepHashLastModified($combiner)
method getDeepHashFromAssets (line 28) | public function getDeepHashFromAssets($assets)
method setDeepHashKeyOnFilters (line 59) | protected function setDeepHashKeyOnFilters($hash)
FILE: src/Assetic/Util/CssUtils.php
class CssUtils (line 8) | abstract class CssUtils
method filterReferences (line 24) | public static function filterReferences(string $content, callable $cal...
method filterUrls (line 41) | public static function filterUrls(string $content, callable $callback)...
method filterImports (line 59) | public static function filterImports(string $content, callable $callba...
method filterIEFilters (line 76) | public static function filterIEFilters(string $content, callable $call...
method filterCommentless (line 93) | public static function filterCommentless(string $content, callable $ca...
method extractImports (line 114) | public static function extractImports(string $content): array
method __construct (line 124) | final private function __construct()
FILE: src/Assetic/Util/LessUtils.php
class LessUtils (line 9) | abstract class LessUtils extends CssUtils
FILE: src/Assetic/Util/SassUtils.php
class SassUtils (line 17) | abstract class SassUtils extends CssUtils
FILE: src/Assetic/Util/VarUtils.php
class VarUtils (line 8) | abstract class VarUtils
method resolve (line 21) | public static function resolve(string $template, array $vars, array $v...
method getCombinations (line 39) | public static function getCombinations(array $vars, array $values): array
method __construct (line 70) | final private function __construct()
FILE: src/Auth/AuthException.php
class AuthException (line 13) | class AuthException extends ApplicationException
method __construct (line 50) | public function __construct($message = '', $code = 0, ?Exception $prev...
method setDefaultErrorMessage (line 66) | public static function setDefaultErrorMessage(string $message)
method useSoftErrors (line 75) | protected function useSoftErrors(): bool
FILE: src/Auth/Concerns/HasGuard.php
type HasGuard (line 11) | trait HasGuard
method check (line 17) | public function check()
method guest (line 73) | public function guest()
method user (line 82) | public function user()
method id (line 91) | public function id()
method validate (line 104) | public function validate(array $credentials = [])
method hasUser (line 113) | public function hasUser()
method setUser (line 121) | public function setUser(Authenticatable $user)
FILE: src/Auth/Concerns/HasImpersonation.php
type HasImpersonation (line 12) | trait HasImpersonation
method impersonate (line 17) | public function impersonate($user)
method stopImpersonate (line 49) | public function stopImpersonate()
method getRealUser (line 85) | public function getRealUser()
method isImpersonator (line 98) | public function isImpersonator()
method getImpersonator (line 107) | public function getImpersonator()
method impersonateRole (line 124) | public function impersonateRole($role)
method isRoleImpersonator (line 132) | public function isRoleImpersonator(): bool
method stopImpersonateRole (line 140) | public function stopImpersonateRole()
method applyRoleImpersonation (line 148) | protected function applyRoleImpersonation($user)
FILE: src/Auth/Concerns/HasProviderProxy.php
type HasProviderProxy (line 9) | trait HasProviderProxy
method getProvider (line 14) | public function getProvider()
method getModel (line 22) | public function getModel()
FILE: src/Auth/Concerns/HasSession.php
type HasSession (line 12) | trait HasSession
method setPersistCodeToSession (line 17) | protected function setPersistCodeToSession($user, bool $remember = tru...
method getPersistCodeFromSession (line 36) | protected function getPersistCodeFromSession(bool $isChecking = true):...
FILE: src/Auth/Concerns/HasStatefulGuard.php
type HasStatefulGuard (line 14) | trait HasStatefulGuard
method attempt (line 24) | public function attempt(array $credentials = [], $remember = false)
method once (line 34) | public function once(array $credentials = [])
method login (line 49) | public function login(Authenticatable $user, $remember = true)
method loginUsingId (line 76) | public function loginUsingId($id, $remember = false)
method onceUsingId (line 92) | public function onceUsingId($id)
method viaRemember (line 107) | public function viaRemember()
method logout (line 115) | public function logout()
FILE: src/Auth/Concerns/HasThrottle.php
type HasThrottle (line 11) | trait HasThrottle
method createThrottleModel (line 17) | public function createThrottleModel()
method findThrottleByLogin (line 30) | public function findThrottleByLogin($loginName, $ipAddress)
method findThrottleByUserId (line 48) | public function findThrottleByUserId($userId, $ipAddress = null)
method clearThrottleForUserId (line 81) | public function clearThrottleForUserId($userId)
FILE: src/Auth/Concerns/HasUser.php
type HasUser (line 14) | trait HasUser
method createUserModel (line 19) | public function createUserModel()
method createRoleModel (line 29) | public function createRoleModel()
method createUserModelQuery (line 39) | protected function createUserModelQuery()
method extendUserQuery (line 52) | public function extendUserQuery($query)
method hasSession (line 59) | public function hasSession(): bool
method hasRemember (line 67) | public function hasRemember(): bool
method getUser (line 76) | public function getUser()
method findUserById (line 90) | public function findUserById($id)
method findUserByLogin (line 104) | public function findUserByLogin($login)
method findUserByCredentials (line 121) | public function findUserByCredentials(array $credentials)
method validateUserModel (line 175) | protected function validateUserModel($user)
FILE: src/Auth/Manager.php
class Manager (line 12) | class Manager implements StatefulGuard
method init (line 99) | protected function init()
method register (line 113) | public function register(array $credentials, $activate = false, $autoL...
method authenticate (line 137) | public function authenticate(array $credentials, $remember = true)
method validateInternal (line 152) | protected function validateInternal(array $credentials = [])
FILE: src/Auth/Migrations/2013_10_01_000001_Db_Users.php
method up (line 8) | public function up()
method down (line 30) | public function down()
FILE: src/Auth/Migrations/2013_10_01_000002_Db_Groups.php
method up (line 8) | public function up()
method down (line 19) | public function down()
FILE: src/Auth/Migrations/2013_10_01_000003_Db_Users_Groups.php
method up (line 8) | public function up()
method down (line 17) | public function down()
FILE: src/Auth/Migrations/2013_10_01_000004_Db_Preferences.php
method up (line 8) | public function up()
method down (line 21) | public function down()
FILE: src/Auth/Migrations/2013_10_01_000005_Db_Throttle.php
method up (line 8) | public function up()
method down (line 23) | public function down()
FILE: src/Auth/Migrations/2017_10_01_000006_Db_Roles.php
method up (line 8) | public function up()
method down (line 18) | public function down()
FILE: src/Auth/Models/Group.php
class Group (line 8) | class Group extends Model
method delete (line 44) | public function delete()
FILE: src/Auth/Models/Preferences.php
class Preferences (line 10) | class Preferences extends Model
method resolveUser (line 46) | public function resolveUser($user)
method forUser (line 59) | public static function forUser($user = null)
method get (line 72) | public function get($key, $default = null)
method set (line 100) | public function set($key, $value)
method reset (line 129) | public function reset($key)
method findRecord (line 152) | public static function findRecord($key, $user = null)
method scopeApplyKeyAndUser (line 166) | public function scopeApplyKeyAndUser($query, $key, $user = null)
method getCacheKey (line 186) | protected function getCacheKey($item, $user)
FILE: src/Auth/Models/Role.php
class Role (line 9) | class Role extends Model
method hasAccess (line 64) | public function hasAccess($permissions, $all = true)
method hasAnyAccess (line 174) | public function hasAnyAccess(array $permissions)
method setPermissionsAttribute (line 184) | public function setPermissionsAttribute($permissions)
FILE: src/Auth/Models/Throttle.php
class Throttle (line 10) | class Throttle extends Model
method getUser (line 53) | public function getUser()
method getLoginAttempts (line 62) | public function getLoginAttempts()
method addLoginAttempt (line 74) | public function addLoginAttempt()
method clearLoginAttempts (line 90) | public function clearLoginAttempts()
method suspend (line 109) | public function suspend()
method unsuspend (line 121) | public function unsuspend()
method checkSuspended (line 136) | public function checkSuspended()
method ban (line 150) | public function ban()
method unban (line 163) | public function unban()
method check (line 177) | public function check()
method clearLoginAttemptsIfAllowed (line 197) | public function clearLoginAttemptsIfAllowed()
method removeSuspensionIfAllowed (line 217) | public function removeSuspensionIfAllowed()
method getIsSuspendedAttribute (line 237) | public function getIsSuspendedAttribute($suspended)
method getIsBannedAttribute (line 247) | public function getIsBannedAttribute($banned)
FILE: src/Auth/Models/User.php
class User (line 13) | class User extends Model implements Authenticatable
method getLoginName (line 129) | public function getLoginName()
method getLogin (line 137) | public function getLogin()
method isSuperUser (line 147) | public function isSuperUser()
method beforeLogin (line 163) | public function beforeLogin()
method afterLogin (line 170) | public function afterLogin()
method afterDelete (line 180) | public function afterDelete()
method getPersistCode (line 196) | public function getPersistCode()
method checkPersistCode (line 213) | public function checkPersistCode($persistCode)
method getIsActivatedAttribute (line 231) | public function getIsActivatedAttribute($activated)
method getActivationCode (line 240) | public function getActivationCode()
method attemptActivation (line 255) | public function attemptActivation($activationCode)
method checkPassword (line 281) | public function checkPassword($password)
method getResetPasswordCode (line 290) | public function getResetPasswordCode()
method checkResetPasswordCode (line 303) | public function checkResetPasswordCode($resetCode)
method attemptResetPassword (line 318) | public function attemptResetPassword($resetCode, $newPassword)
method attemptRehashPassword (line 338) | public function attemptRehashPassword(string $currentPassword): bool
method clearResetPassword (line 358) | public function clearResetPassword()
method setPasswordAttribute (line 369) | public function setPasswordAttribute($value)
method getGroups (line 390) | public function getGroups()
method getRole (line 399) | public function getRole()
method setRoleImpersonation (line 407) | public function setRoleImpersonation(?Role $role): void
method getRoleImpersonation (line 415) | public function getRoleImpersonation(): ?Role
method addGroup (line 425) | public function addGroup($group)
method removeGroup (line 440) | public function removeGroup($group)
method inGroup (line 455) | public function inGroup($group)
method getMergedPermissions (line 470) | public function getMergedPermissions()
method hasAccess (line 502) | public function hasAccess($permissions, $all = true)
method hasPermission (line 524) | public function hasPermission($permissions, $all = true)
method hasAnyAccess (line 635) | public function hasAnyAccess(array $permissions)
method setPermissionsAttribute (line 645) | public function setPermissionsAttribute($permissions)
method getAuthIdentifierName (line 673) | public function getAuthIdentifierName()
method getAuthPasswordName (line 681) | public function getAuthPasswordName()
method getAuthIdentifier (line 690) | public function getAuthIdentifier()
method getAuthPassword (line 699) | public function getAuthPassword()
method getReminderEmail (line 708) | public function getReminderEmail()
method getRememberToken (line 717) | public function getRememberToken()
method setRememberToken (line 727) | public function setRememberToken($value)
method getRememberTokenName (line 736) | public function getRememberTokenName()
method getRandomString (line 749) | public function getRandomString($length = 42)
FILE: src/Composer/ClassLoader.php
class ClassLoader (line 10) | class ClassLoader
method __construct (line 60) | public function __construct(string $basePath)
method instance (line 68) | public static function instance(): ?static
method configure (line 76) | public static function configure($basePath)
method withNamespace (line 84) | public function withNamespace($namespace, $directory): static
method withDirectories (line 95) | public function withDirectories($directories): static
method load (line 108) | public function load($class): bool
method register (line 153) | public function register()
method build (line 167) | public function build()
method initManifest (line 179) | public function initManifest(string $manifestPath)
method removeDirectories (line 190) | public function removeDirectories($directories = null)
method getDirectories (line 207) | public function getDirectories(): array
method loadUpperOrLower (line 215) | protected function loadUpperOrLower(string $class, string $directory, ...
method isRealFilePath (line 237) | protected function isRealFilePath(string $path): bool
method includeClass (line 245) | protected function includeClass(string $class, string $path)
method normalizeClass (line 258) | protected function normalizeClass(string $class): array
method ensureManifestIsLoaded (line 281) | protected function ensureManifestIsLoaded()
method write (line 302) | protected function write(array $manifest)
FILE: src/Composer/ComposerManager.php
class ComposerManager (line 23) | class ComposerManager
method __construct (line 34) | public function __construct()
method instance (line 42) | public static function instance(): static
method update (line 55) | public function update(array $packages = [])
method require (line 79) | public function require(array $requirements)
method remove (line 125) | public function remove(array $packageNames)
method addPackages (line 138) | public function addPackages(array $requirements)
method removePackages (line 146) | public function removePackages(array $packageNames)
method getPackageVersions (line 159) | public function getPackageVersions(array $packageNames): array
method hasPackage (line 183) | public function hasPackage($name): bool
method listPackages (line 193) | public function listPackages()
method listAllPackages (line 201) | public function listAllPackages()
method addRepository (line 209) | public function addRepository($name, $type, $address, $options = [])
method removeRepository (line 224) | public function removeRepository($name)
method hasRepository (line 236) | public function hasRepository($address): bool
method addAuthCredentials (line 260) | public function addAuthCredentials($hostname, $username, $password, $t...
method getAuthCredentials (line 279) | public function getAuthCredentials($hostname, $type = null): ?array
method makeComposer (line 295) | protected function makeComposer(): Composer
method listPackagesInternal (line 315) | protected function listPackagesInternal($useDirect = true)
method normalizeVersion (line 356) | protected function normalizeVersion($packageVersion)
method getJsonPath (line 372) | protected function getJsonPath(): string
method getAuthPath (line 380) | protected function getAuthPath(): string
FILE: src/Composer/Concerns/HasAssertions.php
type HasAssertions (line 15) | trait HasAssertions
method assertEnvironmentReady (line 25) | protected function assertEnvironmentReady()
method assertHomeVariableSet (line 45) | protected function assertHomeVariableSet()
method assertHomeDirectory (line 65) | protected function assertHomeDirectory()
method assertWorkingDirectory (line 74) | protected function assertWorkingDirectory()
method assertComposerWarmedUp (line 82) | protected function assertComposerWarmedUp()
method assertPackageLoaded (line 120) | protected function assertPackageLoaded($packageName, $packagePath, $re...
FILE: src/Composer/Concerns/HasAutoloader.php
type HasAutoloader (line 14) | trait HasAutoloader
method initAutoloader (line 44) | protected function initAutoloader()
method autoload (line 57) | public function autoload($vendorPath)
method preloadPools (line 110) | protected function preloadPools()
method preloadIncludeFilesPool (line 121) | protected function preloadIncludeFilesPool()
method stripVendorDir (line 142) | protected function stripVendorDir($path, $vendorDir)
FILE: src/Composer/Concerns/HasOctoberCommands.php
type HasOctoberCommands (line 9) | trait HasOctoberCommands
method addOctoberRepository (line 14) | public function addOctoberRepository(string $url)
FILE: src/Composer/Concerns/HasOutput.php
type HasOutput (line 16) | trait HasOutput
method setOutput (line 26) | public function setOutput(?IOInterface $output = null)
method setOutputCommand (line 39) | public function setOutputCommand(Command $command, InputInterface $input)
method setOutputBuffer (line 47) | public function setOutputBuffer()
method getOutputBuffer (line 55) | public function getOutputBuffer(): string
FILE: src/Composer/Concerns/HasRequirements.php
type HasRequirements (line 12) | trait HasRequirements
method writePackages (line 23) | protected function writePackages(array $requirements)
method restoreComposerFile (line 78) | protected function restoreComposerFile()
method backupComposerFile (line 88) | protected function backupComposerFile()
FILE: src/Composer/resources/file_get_contents.php
function file_get_contents (line 11) | function file_get_contents(...$args)
FILE: src/Composer/resources/putenv.php
function putenv (line 12) | function putenv()
FILE: src/Config/FileLoader.php
class FileLoader (line 12) | class FileLoader
method fromPath (line 17) | public static function fromPath($path)
method getConfigurationFiles (line 28) | protected static function getConfigurationFiles(string $path)
method getNestedDirectory (line 55) | protected static function getNestedDirectory(SplFileInfo $file, $confi...
FILE: src/Config/Repository.php
class Repository (line 12) | class Repository extends RepositoryBase
method package (line 20) | public function package($namespace, $path)
method has (line 41) | public function has($key)
method get (line 53) | public function get($key, $default = null)
method getMany (line 68) | public function getMany($keys)
method set (line 91) | public function set($key, $value = null)
method toNsKey (line 103) | protected function toNsKey($key)
FILE: src/Database/Attach/File.php
class File (line 22) | class File extends Model
method fromPost (line 105) | public function fromPost($fileInput)
method fromFile (line 136) | public function fromFile($filePath, $filename = null)
method fromData (line 158) | public function fromData($data, $filename)
method fromUrl (line 180) | public function fromUrl($url, $filename = null)
method getUrlAttribute (line 203) | public function getUrlAttribute()
method getPathAttribute (line 211) | public function getPathAttribute()
method getExtensionAttribute (line 220) | public function getExtensionAttribute()
method setDataAttribute (line 228) | public function setDataAttribute($value)
method getWidthAttribute (line 237) | public function getWidthAttribute()
method getHeightAttribute (line 255) | public function getHeightAttribute()
method getSizeAttribute (line 273) | public function getSizeAttribute()
method download (line 286) | public function download()
method output (line 297) | public function output($disposition = 'inline', $returnResponse = true)
method outputThumb (line 329) | public function outputThumb($width, $height, $options = [], $returnRes...
method getCacheKey (line 369) | public function getCacheKey($path = null)
method getFilename (line 381) | public function getFilename()
method getExtension (line 389) | public function getExtension()
method getLastModified (line 398) | public function getLastModified($fileName = null)
method getContentType (line 406) | public function getContentType()
method getContents (line 423) | public function getContents($fileName = null)
method getUrl (line 431) | public function getUrl()
method getPath (line 439) | public function getPath($fileName = null)
method getLocalPath (line 452) | public function getLocalPath()
method getDiskPath (line 473) | public function getDiskPath($fileName = null)
method isPublic (line 485) | public function isPublic()
method sizeToString (line 502) | public function sizeToString()
method beforeSave (line 515) | public function beforeSave()
method afterDelete (line 530) | public function afterDelete()
method isImage (line 549) | public function isImage()
method getImageDimensions (line 558) | protected function getImageDimensions()
method getThumbUrl (line 578) | public function getThumbUrl($width, $height, $options = [])
method getThumb (line 615) | public function getThumb($width, $height, $options = [])
method getThumbFilename (line 624) | public function getThumbFilename($width, $height, $options)
method getDefaultThumbOptions (line 644) | protected function getDefaultThumbOptions($overrideOptions = [])
method makeThumbLocal (line 675) | protected function makeThumbLocal($thumbFile, $thumbPath, $width, $hei...
method makeThumbStorage (line 693) | protected function makeThumbStorage($thumbFile, $thumbPath, $width, $h...
method deleteThumbs (line 726) | public function deleteThumbs()
method getDiskName (line 761) | protected function getDiskName()
method getLocalTempPath (line 776) | protected function getLocalTempPath($path = null)
method putFile (line 790) | protected function putFile($sourcePath, $destinationFileName = null)
method shouldDeleteFile (line 825) | protected function shouldDeleteFile($fileName = null): bool
method deleteFile (line 844) | protected function deleteFile($fileName = null)
method hasFile (line 868) | protected function hasFile($fileName = null)
method deleteEmptyDirectory (line 888) | protected function deleteEmptyDirectory($dir = null)
method isDirectoryEmpty (line 914) | protected function isDirectoryEmpty($dir)
method storageCmd (line 934) | protected function storageCmd()
method copyStorageToLocal (line 959) | protected function copyStorageToLocal($storagePath, $localPath)
method copyLocalToStorage (line 967) | protected function copyLocalToStorage($localPath, $storagePath)
method getMaxFilesize (line 985) | public static function getMaxFilesize()
method getStorageDirectory (line 993) | public function getStorageDirectory()
method getPublicPath (line 1005) | public function getPublicPath()
method getTempPath (line 1017) | public function getTempPath()
method getDisk (line 1032) | public function getDisk()
method isLocalStorage (line 1040) | protected function isLocalStorage()
method getPartitionDirectory (line 1052) | protected function getPartitionDirectory()
method getLocalRootPath (line 1060) | protected function getLocalRootPath()
FILE: src/Database/Attach/FileException.php
class FileException (line 11) | class FileException extends Exception
FILE: src/Database/Builder.php
class Builder (line 14) | class Builder extends BuilderModel
method eagerLoadRelation (line 27) | protected function eagerLoadRelation(array $models, $name, Closure $co...
method lists (line 42) | public function lists($column, $key = null)
method searchWhere (line 54) | public function searchWhere($term, $columns = [], $mode = 'all')
method orSearchWhere (line 66) | public function orSearchWhere($term, $columns = [], $mode = 'all')
method searchWhereRelation (line 80) | public function searchWhereRelation($term, $relation, $columns = [], $...
method orSearchWhereRelation (line 95) | public function orSearchWhereRelation($term, $relation, $columns = [],...
method searchWhereInternal (line 109) | protected function searchWhereInternal($term, $columns, $mode, $boolean)
method paginate (line 167) | public function paginate($perPage = null, $columns = ['*'], $pageName ...
method simplePaginate (line 206) | public function simplePaginate($perPage = null, $columns = ['*'], $pag...
method __call (line 238) | public function __call($method, $parameters)
method addWhereExistsQuery (line 251) | public function addWhereExistsQuery($query, $boolean = 'and', $not = f...
FILE: src/Database/Collection.php
class Collection (line 8) | class Collection extends CollectionBase
method lists (line 17) | public function lists($value, $key = null)
FILE: src/Database/Concerns/HasAttributes.php
type HasAttributes (line 12) | trait HasAttributes
method attributesToArray (line 18) | public function attributesToArray()
method getAttribute (line 67) | public function getAttribute($key)
method getRelationValue (line 88) | public function getRelationValue($key)
method getAttributeValue (line 114) | public function getAttributeValue($key)
method hasGetMutator (line 169) | public function hasGetMutator($key)
method setAttribute (line 180) | public function setAttribute($key, $value)
method hasSetMutator (line 244) | public function hasSetMutator($key)
method addCasts (line 255) | public function addCasts($attributes)
method getDates (line 264) | public function getDates()
method addDateAttribute (line 284) | public function addDateAttribute($attribute)
method addFillable (line 298) | public function addFillable($attributes = null)
method addVisible (line 310) | public function addVisible($attributes = null)
FILE: src/Database/Concerns/HasEagerLoadAttachRelation.php
type HasEagerLoadAttachRelation (line 10) | trait HasEagerLoadAttachRelation
method eagerLoadAttachRelation (line 25) | protected function eagerLoadAttachRelation(array $models, $name, Closu...
FILE: src/Database/Concerns/HasEvents.php
type HasEvents (line 9) | trait HasEvents
method bootNicerEvents (line 19) | protected function bootNicerEvents()
method initializeModelEvent (line 65) | protected function initializeModelEvent()
method flushEventListeners (line 77) | public static function flushEventListeners()
method getObservableEvents (line 87) | public function getObservableEvents()
method fetching (line 104) | public static function fetching($callback)
method fetched (line 114) | public static function fetched($callback)
method afterBoot (line 122) | protected function afterBoot()
method afterInit (line 141) | protected function afterInit()
method beforeCreate (line 159) | protected function beforeCreate()
method afterCreate (line 179) | protected function afterCreate()
method beforeUpdate (line 197) | protected function beforeUpdate()
method afterUpdate (line 217) | protected function afterUpdate()
method beforeSave (line 237) | protected function beforeSave()
method afterSave (line 257) | protected function afterSave()
method beforeDelete (line 277) | protected function beforeDelete()
method afterDelete (line 297) | protected function afterDelete()
method beforeFetch (line 315) | protected function beforeFetch()
method afterFetch (line 335) | protected function afterFetch()
method beforeReplicate (line 353) | protected function beforeReplicate()
method beforeRelation (line 371) | protected function beforeRelation($name, $relation)
method afterRelation (line 390) | protected function afterRelation($name, $model)
FILE: src/Database/Concerns/HasJsonable.php
type HasJsonable (line 9) | trait HasJsonable
method addJsonable (line 22) | public function addJsonable($attributes = null)
method isJsonable (line 34) | public function isJsonable($key)
method getJsonable (line 44) | public function getJsonable()
method jsonable (line 55) | public function jsonable(array $jsonable)
method addJsonableAttributesToArray (line 66) | protected function addJsonableAttributesToArray(array $attributes, arr...
FILE: src/Database/Concerns/HasNicerPagination.php
type HasNicerPagination (line 6) | trait HasNicerPagination
method paginateAtPage (line 15) | public function paginateAtPage($perPage, $currentPage)
method paginateCustom (line 27) | public function paginateCustom($perPage, $pageName)
method simplePaginateAtPage (line 39) | public function simplePaginateAtPage($perPage, $currentPage)
method simplePaginateCustom (line 51) | public function simplePaginateCustom($perPage, $pageName)
method cursorPaginateAtPage (line 63) | public function cursorPaginateAtPage($perPage, $cursor)
method cursorPaginateCustom (line 75) | public function cursorPaginateCustom($perPage, $cursorName)
FILE: src/Database/Concerns/HasRelationships.php
type HasRelationships (line 44) | trait HasRelationships
method hasRelation (line 190) | public function hasRelation(string $name): bool
method getRelationDefinition (line 198) | public function getRelationDefinition(string $name): array
method getRelationDefinitions (line 212) | public function getRelationDefinitions()
method getRelationType (line 235) | public function getRelationType($name)
method isRelationTypeSingular (line 250) | public function isRelationTypeSingular($name): bool
method makeRelation (line 268) | public function makeRelation($name)
method makeRelationInternal (line 295) | protected function makeRelationInternal(string $relationName, string $...
method isRelationPushable (line 309) | public function isRelationPushable(string $name): bool
method getRelationDefaults (line 326) | protected function getRelationDefaults($type)
method handleRelation (line 344) | protected function handleRelation($relationName)
method validateRelationArgs (line 429) | protected function validateRelationArgs($relationName, $optional, $req...
method getRelationCustomClass (line 465) | protected function getRelationCustomClass(string $name): ?string
method hasOne (line 479) | public function hasOne($related, $primaryKey = null, $localKey = null,...
method morphOne (line 501) | public function morphOne($related, $name, $type = null, $id = null, $l...
method belongsTo (line 526) | public function belongsTo($related, $foreignKey = null, $parentKey = n...
method morphTo (line 551) | public function morphTo($name = null, $type = null, $id = null, $owner...
method morphEagerTo (line 572) | protected function morphEagerTo($name, $type, $id, $ownerKey)
method morphInstanceTo (line 593) | protected function morphInstanceTo($target, $name, $type, $id, $ownerKey)
method hasMany (line 614) | public function hasMany($related, $primaryKey = null, $localKey = null...
method hasManyThrough (line 636) | public function hasManyThrough($related, $through, $primaryKey = null,...
method hasOneThrough (line 664) | public function hasOneThrough($related, $through, $primaryKey = null, ...
method morphMany (line 692) | public function morphMany($related, $name, $type = null, $id = null, $...
method belongsToMany (line 716) | public function belongsToMany($related, $table = null, $primaryKey = n...
method morphToMany (line 751) | public function morphToMany($related, $name, $table = null, $primaryKe...
method morphedByMany (line 786) | public function morphedByMany($related, $name, $table = null, $primary...
method attachOne (line 814) | public function attachOne($related, $isPublic = true, $localKey = null...
method attachMany (line 838) | public function attachMany($related, $isPublic = null, $localKey = nul...
method getRelationCaller (line 860) | protected function getRelationCaller()
method getRelationSimpleValue (line 874) | public function getRelationSimpleValue($relationName)
method setRelationSimpleValue (line 882) | protected function setRelationSimpleValue($relationName, $value)
method performDeleteOnRelations (line 894) | protected function performDeleteOnRelations()
FILE: src/Database/Concerns/HasReplication.php
type HasReplication (line 12) | trait HasReplication
method replicateWithRelations (line 21) | public function replicateWithRelations(?array $except = null)
method duplicateWithRelations (line 34) | public function duplicateWithRelations(?array $except = null)
method newReplicationInstance (line 42) | public function newReplicationInstance($attributes)
method isRelationReplicable (line 56) | public function isRelationReplicable(string $name): bool
FILE: src/Database/Connections/Connection.php
class Connection (line 9) | class Connection extends ConnectionBase
method query (line 15) | public function query()
method logQuery (line 31) | public function logQuery($query, $bindings, $time = null)
method fireConnectionEvent (line 45) | protected function fireConnectionEvent($event)
FILE: src/Database/Connections/ExtendsConnection.php
type ExtendsConnection (line 10) | trait ExtendsConnection
method query (line 16) | public function query()
method logQuery (line 32) | public function logQuery($query, $bindings, $time = null)
method fireConnectionEvent (line 46) | protected function fireConnectionEvent($event)
FILE: src/Database/Connections/MariaDbConnection.php
class MariaDbConnection (line 8) | class MariaDbConnection extends MariaDbConnectionBase
FILE: src/Database/Connections/MySqlConnection.php
class MySqlConnection (line 8) | class MySqlConnection extends MySqlConnectionBase
FILE: src/Database/Connections/PostgresConnection.php
class PostgresConnection (line 8) | class PostgresConnection extends PostgresConnectionBase
FILE: src/Database/Connections/SQLiteConnection.php
class SQLiteConnection (line 8) | class SQLiteConnection extends SQLiteConnectionBase
FILE: src/Database/Connections/SqlServerConnection.php
class SqlServerConnection (line 8) | class SqlServerConnection extends SqlServerConnectionBase
FILE: src/Database/Connectors/ConnectionFactory.php
class ConnectionFactory (line 14) | class ConnectionFactory extends ConnectionFactoryBase
method createPdoResolverWithHosts (line 23) | protected function createPdoResolverWithHosts(array $config)
method createConnection (line 52) | protected function createConnection($driver, $connection, $database, $...
FILE: src/Database/DatabaseServiceProvider.php
class DatabaseServiceProvider (line 17) | class DatabaseServiceProvider extends DatabaseServiceProviderBase
method register (line 22) | public function register()
method boot (line 34) | public function boot()
method registerConnectionServices (line 43) | protected function registerConnectionServices()
method getDefaultDatabaseDriver (line 96) | protected function getDefaultDatabaseDriver(): string
FILE: src/Database/Dongle.php
class Dongle (line 6) | class Dongle
method __construct (line 26) | public function __construct($driver = 'mysql', $db = null)
method raw (line 35) | public function raw(string $sql, ?array $params = null)
method rawValue (line 45) | public function rawValue($sql): string
method parse (line 59) | public function parse(string $sql, ?array $params = null): string
method parseValues (line 86) | public function parseValues(string $sql, array $data, array $paramNames)
method parseGroupConcat (line 124) | public function parseGroupConcat(string $sql): string
method parseConcat (line 168) | public function parseConcat(string $sql): string
method parseIfNull (line 217) | public function parseIfNull(string $sql): string
method parseGreatest (line 242) | public function parseGreatest(string $sql): string
method parseBooleanExpression (line 258) | public function parseBooleanExpression(string $sql): string
method cast (line 275) | public function cast(string $sql, $asType = 'INTEGER'): string
method convertTimestamps (line 293) | public function convertTimestamps($table, $columns = null)
method disableStrictMode (line 314) | public function disableStrictMode()
method getDriver (line 331) | public function getDriver()
method getTablePrefix (line 339) | public function getTablePrefix(): string
method parseParams (line 347) | public function parseParams(string $sql, array $params)
FILE: src/Database/ExpandoModel.php
class ExpandoModel (line 10) | class ExpandoModel extends Model
method __construct (line 25) | public function __construct(array $attributes = [])
method setExpandoAttributes (line 42) | public function setExpandoAttributes(array $attributes = [])
method expandoAfterFetch (line 53) | public function expandoAfterFetch()
method expandoBeforeSaveDone (line 63) | public function expandoBeforeSaveDone()
method expandoAfterSave (line 76) | public function expandoAfterSave()
method getExpandoPassthru (line 84) | protected function getExpandoPassthru()
FILE: src/Database/Factories/Factory.php
class Factory (line 8) | abstract class Factory extends FactoryBase
FILE: src/Database/Factories/HasFactory.php
type HasFactory (line 9) | trait HasFactory
method factory (line 18) | public static function factory($count = null, $state = [])
method factoryForModel (line 30) | protected static function factoryForModel(string $modelName)
method newFactory (line 47) | protected static function newFactory()
FILE: src/Database/Migrations/2013_10_01_000001_Db_Deferred_Bindings.php
method up (line 8) | public function up()
method down (line 24) | public function down()
FILE: src/Database/Migrations/2013_10_01_000002_Db_Files.php
method up (line 8) | public function up()
method down (line 29) | public function down()
FILE: src/Database/Migrations/2015_10_01_000003_Db_Revisions.php
method up (line 8) | public function up()
method down (line 24) | public function down()
FILE: src/Database/Migrations/2026_10_01_000004_Db_Translate_Attributes.php
method up (line 8) | public function up()
method down (line 28) | public function down()
FILE: src/Database/Model.php
class Model (line 19) | class Model extends EloquentModel
method __construct (line 58) | public function __construct(array $attributes = [])
method make (line 76) | public static function make($attributes = [])
method create (line 87) | public static function create(array $attributes = [], $sessionKey = null)
method reload (line 100) | public function reload()
method reloadRelations (line 115) | public function reloadRelations($relationName = null)
method extend (line 128) | public static function extend(callable $callback)
method newInstance (line 139) | public function newInstance($attributes = [], $exists = false)
method newFromBuilder (line 168) | public function newFromBuilder($attributes = [], $connection = null)
method asDateTime (line 195) | protected function asDateTime($value)
method newEloquentBuilder (line 233) | public function newEloquentBuilder($query)
method newBaseQueryBuilder (line 242) | protected function newBaseQueryBuilder()
method newCollection (line 257) | public function newCollection(array $models = [])
method __get (line 269) | public function __get($name)
method __set (line 277) | public function __set($name, $value)
method __call (line 285) | public function __call($name, $params)
method __isset (line 301) | public function __isset($key)
method newPivot (line 319) | public function newPivot(EloquentModel $parent, array $attributes, $ta...
method newRelationPivot (line 335) | public function newRelationPivot($relationName, $parent, $attributes, ...
method saveInternal (line 356) | protected function saveInternal($options = [])
method getSaveOption (line 412) | public function getSaveOption($key, $default = null)
method save (line 421) | public function save(?array $options = [], $sessionKey = null)
method push (line 430) | public function push(?array $options = [], $sessionKey = null)
method alwaysPush (line 468) | public function alwaysPush(?array $options = [], $sessionKey = null)
method performDeleteOnModel (line 476) | protected function performDeleteOnModel()
method __sleep (line 486) | public function __sleep()
method __wakeup (line 498) | public function __wakeup()
FILE: src/Database/ModelBehavior.php
class ModelBehavior (line 11) | class ModelBehavior extends ExtensionBase
method __construct (line 22) | public function __construct($model)
FILE: src/Database/ModelException.php
class ModelException (line 11) | class ModelException extends ValidationException
method __construct (line 21) | public function __construct(Model $model)
method getModel (line 31) | public function getModel(): Model
FILE: src/Database/Models/DeferredBinding.php
class DeferredBinding (line 15) | class DeferredBinding extends Model
method beforeCreate (line 42) | public function beforeCreate()
method getPivotDataForBind (line 63) | public function getPivotDataForBind($model, $relationName): array
method findBindingRecord (line 89) | protected function findBindingRecord()
method hasDeferredActions (line 103) | public static function hasDeferredActions($masterType, $sessionKey, $f...
method cancelDeferredActions (line 125) | public static function cancelDeferredActions($masterType, $sessionKey)
method cleanUp (line 140) | public static function cleanUp($days = 5)
method deleteCancel (line 154) | public function deleteCancel()
method afterDelete (line 163) | public function afterDelete()
method deleteSlaveRecord (line 171) | protected function deleteSlaveRecord()
FILE: src/Database/Models/Revision.php
class Revision (line 11) | class Revision extends Model
method getNewValueAttribute (line 21) | public function getNewValueAttribute($value)
method getOldValueAttribute (line 37) | public function getOldValueAttribute($value)
FILE: src/Database/Models/TranslateAttribute.php
class TranslateAttribute (line 11) | class TranslateAttribute extends Model
FILE: src/Database/MorphPivot.php
class MorphPivot (line 13) | class MorphPivot extends Pivot
method setKeysForSaveQuery (line 31) | protected function setKeysForSaveQuery($query)
method setKeysForSelectQuery (line 44) | protected function setKeysForSelectQuery($query)
method delete (line 56) | public function delete()
method getMorphType (line 80) | public function getMorphType()
method setMorphType (line 90) | public function setMorphType($morphType)
method setMorphClass (line 102) | public function setMorphClass($morphClass)
method getQueueableId (line 115) | public function getQueueableId()
method newQueryForRestoration (line 135) | public function newQueryForRestoration($ids)
method newQueryForCollectionRestoration (line 159) | protected function newQueryForCollectionRestoration(array $ids)
FILE: src/Database/NestedTreeScope.php
class NestedTreeScope (line 9) | class NestedTreeScope extends \October\Rain\Database\Scopes\NestedTreeScope
FILE: src/Database/Pivot.php
class Pivot (line 9) | class Pivot extends Model
FILE: src/Database/QueryBuilder.php
class QueryBuilder (line 14) | class QueryBuilder extends QueryBuilderBase
method lists (line 38) | public function lists($column, $key = null)
method remember (line 50) | public function remember($minutes, $key = null)
method rememberForever (line 64) | public function rememberForever($key = null)
method cacheTags (line 75) | public function cacheTags($cacheTags)
method get (line 84) | public function get($columns = ['*'])
method getCached (line 96) | public function getCached(array $columns = ['*'])
method getCache (line 130) | protected function getCache()
method getCacheInfo (line 140) | protected function getCacheInfo(): array
method getCacheKey (line 148) | public function getCacheKey(): string
method generateCacheKey (line 158) | public function generateCacheKey()
method getCacheCallback (line 171) | protected function getCacheCallback($columns)
method count (line 185) | public function count($columns = '*')
FILE: src/Database/Relations/AttachMany.php
class AttachMany (line 15) | class AttachMany extends MorphManyBase
method __construct (line 23) | public function __construct(Builder $query, Model $parent, $type, $id,...
method setSimpleValue (line 40) | public function setSimpleValue($value)
method getSimpleValue (line 121) | public function getSimpleValue()
FILE: src/Database/Relations/AttachOne.php
class AttachOne (line 15) | class AttachOne extends MorphOneBase
method __construct (line 23) | public function __construct(Builder $query, Model $parent, $type, $id,...
method setSimpleValue (line 40) | public function setSimpleValue($value)
method getSimpleValue (line 93) | public function getSimpleValue()
FILE: src/Database/Relations/AttachOneOrMany.php
type AttachOneOrMany (line 15) | trait AttachOneOrMany
method isPublic (line 32) | public function isPublic()
method addConstraints (line 45) | public function addConstraints()
method getRelationExistenceQuery (line 65) | public function getRelationExistenceQuery(Builder $query, Builder $par...
method getRelationExistenceQueryForSelfRelation (line 86) | public function getRelationExistenceQueryForSelfRelation(Builder $quer...
method addEagerConstraints (line 102) | public function addEagerConstraints(array $models)
method addCommonEagerConstraints (line 116) | public function addCommonEagerConstraints(array $models)
method save (line 124) | public function save(Model $model, $sessionKey = null)
method saveQuietly (line 145) | public function saveQuietly(Model $model, $sessionKey = null)
method saveMany (line 155) | public function saveMany($models, $sessionKey = null)
method saveManyQuietly (line 167) | public function saveManyQuietly($models, $sessionKey = null)
method create (line 177) | public function create(array $attributes = [], $sessionKey = null)
method createQuietly (line 201) | public function createQuietly(array $attributes = [], $sessionKey = null)
method createMany (line 211) | public function createMany(iterable $records, $sessionKey = null)
method createManyQuietly (line 225) | public function createManyQuietly(iterable $records, $sessionKey = null)
method createFromFile (line 235) | public function createFromFile(string $filePath, array $attributes = [...
method add (line 261) | public function add(Model $model, $sessionKey = null)
method addMany (line 336) | public function addMany($models, $sessionKey = null)
method remove (line 346) | public function remove(Model $model, $sessionKey = null)
method isModelRemovable (line 414) | protected function isModelRemovable($model): bool
method ensureAttachOneIsSingular (line 426) | protected function ensureAttachOneIsSingular($sessionKey = null)
method makeValidationFile (line 447) | public function makeValidationFile($value)
method ensureRelationIsEmpty (line 477) | protected function ensureRelationIsEmpty()
method getRelatedKeyName (line 493) | public function getRelatedKeyName()
method getForeignKey (line 501) | public function getForeignKey()
method getOtherKey (line 509) | public function getOtherKey()
FILE: src/Database/Relations/BelongsTo.php
class BelongsTo (line 13) | class BelongsTo extends BelongsToBase
method __construct (line 26) | public function __construct(Builder $query, Model $child, $foreignKey,...
method create (line 38) | public function create(array $attributes = [], $sessionKey = null)
method add (line 50) | public function add(Model $model, $sessionKey = null)
method remove (line 63) | public function remove(Model $model, $sessionKey = null)
method associate (line 76) | public function associate($model)
method dissociate (line 118) | public function dissociate()
method setSimpleValue (line 162) | public function setSimpleValue($value)
method getSimpleValue (line 192) | public function getSimpleValue()
method getOtherKey (line 200) | public function getOtherKey()
FILE: src/Database/Relations/BelongsToMany.php
class BelongsToMany (line 16) | class BelongsToMany extends BelongsToManyBase
method __construct (line 36) | public function __construct(
method addWhereConstraints (line 64) | protected function addWhereConstraints()
method addEagerConstraints (line 78) | public function addEagerConstraints(array $models)
method baseAttachRecord (line 91) | protected function baseAttachRecord($id, $timed)
method getRelationExistenceQuery (line 109) | public function getRelationExistenceQuery(Builder $query, Builder $par...
method newPivotQuery (line 123) | public function newPivotQuery()
method save (line 137) | public function save(Model $model, array $pivotData = [], $sessionKey ...
method saveQuietly (line 150) | public function saveQuietly(Model $model, array $pivotData = [], $sess...
method saveMany (line 160) | public function saveMany($models, array $pivotData = [], $sessionKey =...
method saveManyQuietly (line 173) | public function saveManyQuietly($models, array $pivotData = [], $sessi...
method create (line 183) | public function create(array $attributes = [], array $pivotData = [], ...
method createQuietly (line 196) | public function createQuietly(array $attributes = [], array $pivotData...
method createMany (line 206) | public function createMany(iterable $records, array $pivotData = [], $...
method createManyQuietly (line 221) | public function createManyQuietly(iterable $records, array $pivotData ...
method createOrFirst (line 232) | public function createOrFirst(array $attributes = [], \Closure|array $...
method attach (line 248) | public function attach($ids, array $attributes = [], $touch = true)
method detach (line 301) | public function detach($ids = null, $touch = true)
method add (line 350) | public function add(Model $model, $sessionKey = null, $pivotData = [])
method remove (line 378) | public function remove(Model $model, $sessionKey = null)
method paginate (line 398) | public function paginate($perPage = null, $columns = ['*'], $pageName ...
method simplePaginate (line 430) | public function simplePaginate($perPage = null, $columns = ['*'], $pag...
method cursorPaginate (line 462) | public function cursorPaginate($perPage = null, $columns = ['*'], $cur...
method newPivot (line 480) | public function newPivot(array $attributes = [], $exists = false)
method setSimpleValue (line 497) | public function setSimpleValue($value)
method newSimpleRelationQuery (line 543) | protected function newSimpleRelationQuery(array $ids)
method getSimpleValue (line 556) | public function getSimpleValue()
method getForeignKey (line 577) | public function getForeignKey()
method getOtherKey (line 585) | public function getOtherKey()
method shouldSelect (line 594) | protected function shouldSelect(array $columns = ['*'])
method performLeftJoin (line 617) | protected function performLeftJoin($query = null)
method performSortableColumnJoin (line 633) | protected function performSortableColumnJoin($query = null, $sessionKe...
method performDeferredLeftJoin (line 678) | protected function performDeferredLeftJoin($query = null, $sessionKey ...
FILE: src/Database/Relations/DeferOneOrMany.php
type DeferOneOrMany (line 12) | trait DeferOneOrMany
method withDeferred (line 20) | public function withDeferred($sessionKey = null)
method withDeferredQuery (line 49) | public function withDeferredQuery($newQuery = null, $sessionKey = null)
method getWithDeferredQualifiedKeyName (line 118) | protected function getWithDeferredQualifiedKeyName()
FILE: src/Database/Relations/DefinedConstraints.php
type DefinedConstraints (line 14) | trait DefinedConstraints
method addDefinedConstraints (line 25) | public function addDefinedConstraints(): void
method addDefinedConstraintsToRelation (line 37) | public function addDefinedConstraintsToRelation($relation, ?array $arg...
method isPivotSiteScoped (line 90) | public function isPivotSiteScoped(): bool
method addPivotSiteScopeConstraints (line 98) | protected function addPivotSiteScopeConstraints(): void
method getPivotSiteScopeValue (line 109) | protected function getPivotSiteScopeValue(): ?int
method addDefinedConstraintsToQuery (line 130) | public function addDefinedConstraintsToQuery($query, ?array $args = null)
method getRelationDefinitionForDefinedConstraints (line 177) | protected function getRelationDefinitionForDefinedConstraints()
FILE: src/Database/Relations/HasMany.php
class HasMany (line 15) | class HasMany extends HasManyBase
method __construct (line 23) | public function __construct(Builder $query, Model $parent, $foreignKey...
method setSimpleValue (line 36) | public function setSimpleValue($value)
method getSimpleValue (line 94) | public function getSimpleValue()
FILE: src/Database/Relations/HasManyThrough.php
class HasManyThrough (line 13) | class HasManyThrough extends HasManyThroughBase
method __construct (line 25) | public function __construct(Builder $query, Model $farParent, Model $p...
method getRelationDefinitionForDefinedConstraints (line 38) | protected function getRelationDefinitionForDefinedConstraints()
method parentSoftDeletes (line 47) | public function parentSoftDeletes()
method getSimpleValue (line 59) | public function getSimpleValue()
method getRelatedKeyName (line 84) | public function getRelatedKeyName()
method getQualifiedRelatedKeyName (line 93) | public function getQualifiedRelatedKeyName()
FILE: src/Database/Relations/HasOne.php
class HasOne (line 13) | class HasOne extends HasOneBase
method __construct (line 21) | public function __construct(Builder $query, Model $parent, $foreignKey...
method setSimpleValue (line 34) | public function setSimpleValue($value)
method getSimpleValue (line 87) | public function getSimpleValue()
FILE: src/Database/Relations/HasOneOrMany.php
type HasOneOrMany (line 12) | trait HasOneOrMany
method save (line 24) | public function save(Model $model, $sessionKey = null)
method saveQuietly (line 38) | public function saveQuietly(Model $model, $sessionKey = null)
method saveMany (line 50) | public function saveMany($models, $sessionKey = null)
method saveManyQuietly (line 61) | public function saveManyQuietly($models, $sessionKey = null)
method create (line 71) | public function create(array $attributes = [], $sessionKey = null)
method createQuietly (line 86) | public function createQuietly(array $attributes = [], $sessionKey = null)
method forceCreateQuietly (line 97) | public function forceCreateQuietly(array $attributes = [], $sessionKey...
method createMany (line 113) | public function createMany(iterable $records, $sessionKey = null)
method createManyQuietly (line 130) | public function createManyQuietly(iterable $records, $sessionKey = null)
method createOrFirst (line 141) | public function createOrFirst(array $attributes = [], \Closure|array $...
method add (line 155) | public function add(Model $model, $sessionKey = null)
method addMany (line 220) | public function addMany($models, $sessionKey = null)
method remove (line 230) | public function remove(Model $model, $sessionKey = null)
method isModelRemovable (line 296) | protected function isModelRemovable($model): bool
method ensureRelationIsEmpty (line 304) | protected function ensureRelationIsEmpty()
method getRelatedKeyName (line 320) | public function getRelatedKeyName()
method getForeignKey (line 328) | public function getForeignKey()
method getOtherKey (line 336) | public function getOtherKey()
FILE: src/Database/Relations/HasOneThrough.php
class HasOneThrough (line 13) | class HasOneThrough extends HasOneThroughBase
method __construct (line 25) | public function __construct(Builder $query, Model $farParent, Model $p...
method parentSoftDeletes (line 38) | public function parentSoftDeletes()
FILE: src/Database/Relations/MorphMany.php
class MorphMany (line 15) | class MorphMany extends MorphManyBase
method __construct (line 23) | public function __construct(Builder $query, Model $parent, $type, $id,...
method setSimpleValue (line 36) | public function setSimpleValue($value)
method getSimpleValue (line 93) | public function getSimpleValue()
FILE: src/Database/Relations/MorphOne.php
class MorphOne (line 13) | class MorphOne extends MorphOneBase
method __construct (line 21) | public function __construct(Builder $query, Model $parent, $type, $id,...
method setSimpleValue (line 34) | public function setSimpleValue($value)
method getSimpleValue (line 91) | public function getSimpleValue()
FILE: src/Database/Relations/MorphOneOrMany.php
type MorphOneOrMany (line 12) | trait MorphOneOrMany
method save (line 24) | public function save(Model $model, $sessionKey = null)
method saveQuietly (line 39) | public function saveQuietly(Model $model, $sessionKey = null)
method saveMany (line 49) | public function saveMany($models, $sessionKey = null)
method saveManyQuietly (line 62) | public function saveManyQuietly($models, $sessionKey = null)
method create (line 72) | public function create(array $attributes = [], $sessionKey = null)
method createQuietly (line 87) | public function createQuietly(array $attributes = [], $sessionKey = null)
method forceCreateQuietly (line 98) | public function forceCreateQuietly(array $attributes = [], $sessionKey...
method createMany (line 114) | public function createMany(iterable $records, $sessionKey = null)
method createManyQuietly (line 131) | public function createManyQuietly(iterable $records, $sessionKey = null)
method createOrFirst (line 142) | public function createOrFirst(array $attributes = [], \Closure|array $...
method add (line 156) | public function add(Model $model, $sessionKey = null)
method remove (line 221) | public function remove(Model $model, $sessionKey = null)
method isModelRemovable (line 288) | protected function isModelRemovable($model): bool
method ensureRelationIsEmpty (line 298) | protected function ensureRelationIsEmpty()
method getRelatedKeyName (line 317) | public function getRelatedKeyName()
FILE: src/Database/Relations/MorphTo.php
class MorphTo (line 13) | class MorphTo extends MorphToBase
method __construct (line 25) | public function __construct(Builder $query, Model $parent, $foreignKey...
method associate (line 40) | public function associate($model)
method dissociate (line 84) | public function dissociate()
method setSimpleValue (line 126) | public function setSimpleValue($value)
method getSimpleValue (line 161) | public function getSimpleValue()
FILE: src/Database/Relations/MorphToMany.php
class MorphToMany (line 17) | class MorphToMany extends BelongsToMany
method __construct (line 46) | public function __construct(
method addWhereConstraints (line 82) | protected function addWhereConstraints()
method addEagerConstraints (line 96) | public function addEagerConstraints(array $models)
method baseAttachRecord (line 109) | protected function baseAttachRecord($id, $timed)
method getRelationExistenceQuery (line 125) | public function getRelationExistenceQuery(Builder $query, Builder $par...
method newPivotQuery (line 136) | public function newPivotQuery()
method newPivot (line 147) | public function newPivot(array $attributes = [], $exists = false)
method getMorphType (line 171) | public function getMorphType()
method getMorphClass (line 179) | public function getMorphClass()
FILE: src/Database/Relations/Relation.php
class Relation (line 17) | abstract class Relation extends RelationBase
FILE: src/Database/Replicator.php
class Replicator (line 11) | class Replicator
method __construct (line 36) | public function __construct($model)
method replicate (line 49) | public function replicate(?array $except = null)
method duplicate (line 64) | public function duplicate(?array $except = null)
method replicateRelationsInternal (line 74) | protected function replicateRelationsInternal(?array $except = null)
method replicateRelationInternal (line 109) | protected function replicateRelationInternal($relationObject, $models)
method isRelationReplicable (line 142) | protected function isRelationReplicable(string $name): bool
method mapAssociation (line 162) | protected function mapAssociation($currentModel, $replicatedModel)
method updateTreeAssociations (line 170) | protected function updateTreeAssociations()
FILE: src/Database/Schema/Blueprint.php
class Blueprint (line 11) | class Blueprint extends BaseBlueprint
method multisite (line 20) | public function multisite($column = 'site_id', $indexName = null)
FILE: src/Database/Scopes/MultisiteGroupScope.php
class MultisiteGroupScope (line 17) | class MultisiteGroupScope implements ScopeInterface
method apply (line 27) | public function apply(BuilderBase $builder, ModelBase $model)
method extend (line 40) | public function extend(BuilderBase $builder)
method addWithSiteGroup (line 50) | protected function addWithSiteGroup(BuilderBase $builder)
method addWithSiteGroups (line 64) | protected function addWithSiteGroups(BuilderBase $builder)
FILE: src/Database/Scopes/MultisiteScope.php
class MultisiteScope (line 14) | class MultisiteScope implements ScopeInterface
method apply (line 24) | public function apply(BuilderBase $builder, ModelBase $model)
method extend (line 34) | public function extend(BuilderBase $builder)
method addWithSite (line 44) | protected function addWithSite(BuilderBase $builder)
method addWithSites (line 57) | protected function addWithSites(BuilderBase $builder)
method addWithSyncSites (line 74) | protected function addWithSyncSites(BuilderBase $builder)
FILE: src/Database/Scopes/NestedTreeScope.php
class NestedTreeScope (line 13) | class NestedTreeScope implements ScopeInterface
method apply (line 18) | public function apply(BuilderBase $builder, ModelBase $model)
method extend (line 26) | public function extend(BuilderBase $builder)
FILE: src/Database/Scopes/SoftDeleteScope.php
class SoftDeleteScope (line 13) | class SoftDeleteScope extends SoftDeletingScope
method apply (line 18) | public function apply(BuilderBase $builder, ModelBase $model)
FILE: src/Database/Scopes/SortableScope.php
class SortableScope (line 13) | class SortableScope implements ScopeInterface
method apply (line 18) | public function apply(BuilderBase $builder, ModelBase $model)
method extend (line 26) | public function extend(BuilderBase $builder)
FILE: src/Database/SortableScope.php
class SortableScope (line 9) | class SortableScope extends \October\Rain\Database\Scopes\SortableScope
FILE: src/Database/Traits/BaseIdentifier.php
type BaseIdentifier (line 15) | trait BaseIdentifier
method initializeBaseIdentifier (line 20) | public function initializeBaseIdentifier()
method baseIdentifyAttributes (line 30) | public function baseIdentifyAttributes()
method generateBaseIdentifier (line 41) | public function generateBaseIdentifier()
method getBaseIdentifierUniqueAttributeValue (line 52) | protected function getBaseIdentifierUniqueAttributeValue($name)
method getBaseIdentifierColumnName (line 67) | public function getBaseIdentifierColumnName()
FILE: src/Database/Traits/Defaultable.php
type Defaultable (line 9) | trait Defaultable
method initializeDefaultable (line 19) | public function initializeDefaultable()
method defaultableAfterSave (line 27) | public function defaultableAfterSave()
method makeDefault (line 37) | public function makeDefault()
method clearDefaultableCache (line 46) | public static function clearDefaultableCache()
method getDefault (line 54) | public static function getDefault()
FILE: src/Database/Traits/DeferredBinding.php
type DeferredBinding (line 11) | trait DeferredBinding
method isDeferrable (line 21) | public function isDeferrable($relationName): bool
method hasDeferred (line 36) | public function hasDeferred($sessionKey = null, $relationName = null):...
method bindDeferred (line 48) | public function bindDeferred($relation, $record, $sessionKey, $pivotDa...
method unbindDeferred (line 83) | public function unbindDeferred($relation, $record, $sessionKey): Defer...
method cancelDeferred (line 117) | public function cancelDeferred($sessionKey): void
method commitDeferred (line 125) | public function commitDeferred($sessionKey)
method commitDeferredBefore (line 135) | protected function commitDeferredBefore($sessionKey)
method commitDeferredAfter (line 143) | protected function commitDeferredAfter($sessionKey)
method commitDeferredOfType (line 151) | protected function commitDeferredOfType($sessionKey, $include = null, ...
method getDeferredBindingRecords (line 218) | protected function getDeferredBindingRecords($sessionKey)
method getDeferrableRelationTypes (line 235) | protected function getDeferrableRelationTypes()
FILE: src/Database/Traits/Encryptable.php
type Encryptable (line 13) | trait Encryptable
method initializeEncryptable (line 30) | public function initializeEncryptable()
method makeEncryptableValue (line 67) | public function makeEncryptableValue($key, $value)
method getEncryptableValue (line 79) | public function getEncryptableValue($key)
method getEncryptableAttributes (line 88) | public function getEncryptableAttributes()
method getOriginalEncryptableValues (line 97) | public function getOriginalEncryptableValues()
method getOriginalEncryptableValue (line 106) | public function getOriginalEncryptableValue($attribute)
FILE: src/Database/Traits/Hashable.php
type Hashable (line 12) | trait Hashable
method initializeHashable (line 28) | public function initializeHashable()
method addHashable (line 51) | public function addHashable($attributes = null)
method makeHashValue (line 66) | public function makeHashValue($key, $value)
method checkHashValue (line 78) | public function checkHashValue($key, $value)
method getHashableAttributes (line 87) | public function getHashableAttributes()
method getOriginalHashValues (line 96) | public function getOriginalHashValues()
method getOriginalHashValue (line 105) | public function getOriginalHashValue($attribute)
FILE: src/Database/Traits/Multisite.php
type Multisite (line 15) | trait Multisite
method bootMultisite (line 40) | public static function bootMultisite()
method initializeMultisite (line 54) | public function initializeMultisite()
method multisiteBeforeSave (line 80) | public function multisiteBeforeSave()
method multisiteSaveComplete (line 92) | public function multisiteSaveComplete()
method multisiteAfterCreate (line 128) | public function multisiteAfterCreate()
method multisiteAfterDelete (line 144) | public function multisiteAfterDelete()
method defineMultisiteRelations (line 162) | protected function defineMultisiteRelations()
method canDeleteMultisiteRelation (line 180) | public function canDeleteMultisiteRelation($name, $type = null): bool
method defineMultisiteRelation (line 210) | protected function defineMultisiteRelation($name, $type = null)
method savePropagate (line 248) | public function savePropagate($options = null, $sessionKey = null)
method addPropagatable (line 257) | public function addPropagatable($attributes = null)
method isAttributePropagatable (line 272) | public function isAttributePropagatable($attribute)
method propagateToSite (line 280) | public function propagateToSite($siteId, $otherModel = null)
method propagateManyToManyRelation (line 326) | protected function propagateManyToManyRelation($name, $siteId, $otherM...
method getMultisiteKey (line 366) | public function getMultisiteKey()
method isMultisiteEnabled (line 379) | public function isMultisiteEnabled()
method isRelatedMultisite (line 388) | protected function isRelatedMultisite($name): bool
method isMultisiteSyncEnabled (line 406) | public function isMultisiteSyncEnabled()
method getMultisiteConfig (line 422) | public function getMultisiteConfig($key, $default = null)
method getMultisiteSyncSites (line 435) | public function getMultisiteSyncSites()
method scopeApplyOtherSiteRoot (line 462) | public function scopeApplyOtherSiteRoot($query, $idOrModel)
method newOtherSiteQuery (line 477) | public function newOtherSiteQuery()
method findForSite (line 485) | public function findForSite($siteId = null)
method findOrCreateForSite (line 496) | public function findOrCreateForSite($siteId = null)
method findOtherSiteModel (line 519) | protected function findOtherSiteModel($siteId = null)
method deleteForSite (line 545) | public function deleteForSite($siteId = null)
method isModelUsingSameSite (line 568) | protected function isModelUsingSameSite($siteId = null)
method getSiteIdColumn (line 577) | public function getSiteIdColumn()
method getQualifiedSiteIdColumn (line 586) | public function getQualifiedSiteIdColumn()
FILE: src/Database/Traits/MultisiteGroup.php
type MultisiteGroup (line 18) | trait MultisiteGroup
method bootMultisiteGroup (line 23) | public static function bootMultisiteGroup()
method initializeMultisiteGroup (line 31) | public function initializeMultisiteGroup()
method multisiteGroupBeforeSave (line 39) | public function multisiteGroupBeforeSave()
method isMultisiteGroupEnabled (line 51) | public function isMultisiteGroupEnabled(): bool
method getSiteGroupIdColumn (line 59) | public function getSiteGroupIdColumn(): string
method getQualifiedSiteGroupIdColumn (line 67) | public function getQualifiedSiteGroupIdColumn(): string
FILE: src/Database/Traits/NestedTree.php
type NestedTree (line 72) | trait NestedTree
method bootNestedTree (line 82) | public static function bootNestedTree()
method initializeNestedTree (line 90) | public function initializeNestedTree()
method storeNewParent (line 134) | public function storeNewParent()
method moveToNewParent (line 165) | public function moveToNewParent()
method deleteDescendants (line 193) | public function deleteDescendants()
method shiftSiblingsForRestore (line 232) | public function shiftSiblingsForRestore()
method restoreDescendants (line 262) | public function restoreDescendants()
method makeRoot (line 289) | public function makeRoot()
method makeChildOf (line 298) | public function makeChildOf($node)
method moveLeft (line 307) | public function moveLeft()
method moveRight (line 316) | public function moveRight()
method moveBefore (line 325) | public function moveBefore($node)
method moveAfter (line 334) | public function moveAfter($node)
method isRoot (line 346) | public function isRoot(): bool
method isChild (line 354) | public function isChild(): bool
method isLeaf (line 362) | public function isLeaf(): bool
method isInsideSubtree (line 371) | public function isInsideSubtree($node): bool
method isDescendantOf (line 385) | public function isDescendantOf($other): bool
method scopeWithoutNode (line 398) | public function scopeWithoutNode($query, $node)
method scopeWithoutSelf (line 407) | public function scopeWithoutSelf($query)
method scopeWithoutRoot (line 417) | public function scopeWithoutRoot($query)
method scopeAllChildren (line 426) | public function scopeAllChildren($query, $includeSelf = false)
method scopeParents (line 440) | public function scopeParents($query, $includeSelf = false)
method scopeSiblings (line 454) | public function scopeSiblings($query, $includeSelf = false)
method scopeLeaves (line 465) | public function scopeLeaves($query)
method scopeGetAllRoot (line 482) | public function scopeGetAllRoot($query)
method scopeGetNested (line 498) | public function scopeGetNested($query)
method scopeListsNested (line 511) | public function scopeListsNested($query, $column, $key = null, $indent...
method getAll (line 546) | public function getAll($columns = ['*'])
method getRoot (line 555) | public function getRoot()
method getEagerRoot (line 580) | public function getEagerRoot()
method getRootList (line 589) | public function getRootList($column, $key = null, $indent = ' &nb...
method getParent (line 598) | public function getParent()
method getParents (line 607) | public function getParents()
method getParentsAndSelf (line 616) | public function getParentsAndSelf()
method getChildren (line 625) | public function getChildren()
method getEagerChildren (line 634) | public function getEagerChildren()
method getAllChildren (line 643) | public function getAllChildren()
method getAllChildrenAndSelf (line 652) | public function getAllChildrenAndSelf()
method getSiblings (line 661) | public function getSiblings()
method getSiblingsAndSelf (line 670) | public function getSiblingsAndSelf()
method getLeftSibling (line 679) | public function getLeftSibling()
method getRightSibling (line 688) | public function getRightSibling()
method getLeaves (line 697) | public function getLeaves()
method getLevel (line 706) | public function getLevel()
method getChildCount (line 719) | public function getChildCount()
method setDepth (line 732) | public function setDepth()
method setDefaultLeftAndRight (line 754) | public function setDefaultLeftAndRight()
method resetTreeNesting (line 779) | public function resetTreeNesting()
method resetTreeOrphans (line 809) | public function resetTreeOrphans()
method moveTo (line 840) | protected function moveTo($target, $position)
method performMove (line 877) | protected function performMove($node, $target, $position)
method resolveMoveTarget (line 940) | protected function resolveMoveTarget($targetId)
method validateMove (line 958) | protected function validateMove($node, $target, $position)
method getPrimaryBoundary (line 1000) | protected function getPrimaryBoundary($node, $target, $position)
method getOtherBoundary (line 1026) | protected function getOtherBoundary($node, $target, $position)
method getSortedBoundaries (line 1037) | protected function getSortedBoundaries($node, $target, $position)
method getParentColumnName (line 1059) | public function getParentColumnName()
method getQualifiedParentColumnName (line 1068) | public function getQualifiedParentColumnName()
method getParentId (line 1077) | public function getParentId()
method getLeftColumnName (line 1086) | public function getLeftColumnName()
method getQualifiedLeftColumnName (line 1095) | public function getQualifiedLeftColumnName()
method getLeft (line 1104) | public function getLeft()
method getRightColumnName (line 1113) | public function getRightColumnName()
method getQualifiedRightColumnName (line 1122) | public function getQualifiedRightColumnName()
method getRight (line 1131) | public function getRight()
method getDepthColumnName (line 1140) | public function getDepthColumnName()
method getQualifiedDepthColumnName (line 1149) | public function getQualifiedDepthColumnName()
method getDepth (line 1158) | public function getDepth()
method newNestedTreeQuery (line 1170) | protected function newNestedTreeQuery()
method newCollection (line 1178) | public function newCollection(array $models = [])
FILE: src/Database/Traits/Nullable.php
type Nullable (line 11) | trait Nullable
method initializeNullable (line 22) | public function initializeNullable()
method addNullable (line 37) | public function addNullable($attributes = null)
method checkNullableValue (line 47) | public function checkNullableValue($value): bool
method nullableBeforeSave (line 59) | public function nullableBeforeSave()
FILE: src/Database/Traits/Purgeable.php
type Purgeable (line 11) | trait Purgeable
method initializePurgeable (line 27) | public function initializePurgeable()
method addPurgeable (line 44) | public function addPurgeable($attributes = null)
method purgeAttributes (line 57) | public function purgeAttributes($attributesToPurge = null)
method getPurgeableAttributes (line 83) | public function getPurgeableAttributes()
method getOriginalPurgeValues (line 91) | public function getOriginalPurgeValues()
method getOriginalPurgeValue (line 99) | public function getOriginalPurgeValue($attribute)
method restorePurgedValues (line 108) | public function restorePurgedValues()
FILE: src/Database/Traits/Revisionable.php
type Revisionable (line 15) | trait Revisionable
method initializeRevisionable (line 43) | public function initializeRevisionable()
method revisionableAfterUpdate (line 64) | public function revisionableAfterUpdate()
method revisionableAfterDelete (line 106) | public function revisionableAfterDelete()
method revisionableCleanUp (line 147) | protected function revisionableCleanUp()
method revisionableGetCastType (line 169) | protected function revisionableGetCastType($attribute)
method revisionableGetUser (line 181) | protected function revisionableGetUser()
method getRevisionHistoryName (line 198) | public function getRevisionHistoryName()
FILE: src/Database/Traits/SimpleTree.php
type SimpleTree (line 43) | trait SimpleTree
method initializeSimpleTree (line 48) | public function initializeSimpleTree()
method getAll (line 77) | public function getAll()
method getAllChildren (line 92) | public function getAllChildren()
method getChildren (line 113) | public function getChildren()
method getChildCount (line 122) | public function getChildCount()
method getParents (line 131) | public function getParents()
method scopeGetAllRoot (line 153) | public function scopeGetAllRoot($query)
method scopeGetNested (line 163) | public function scopeGetNested($query)
method scopeListsNested (line 176) | public function scopeListsNested($query, $column, $key = null, $indent...
method getParentColumnName (line 249) | public function getParentColumnName()
method getQualifiedParentColumnName (line 258) | public function getQualifiedParentColumnName()
method getParentId (line 267) | public function getParentId()
method newCollection (line 275) | public function newCollection(array $models = [])
FILE: src/Database/Traits/Sluggable.php
type Sluggable (line 13) | trait Sluggable
method initializeSluggable (line 24) | public function initializeSluggable()
method slugAttributes (line 43) | public function slugAttributes()
method setSluggedValue (line 59) | public function setSluggedValue($slugAttribute, $sourceAttributes, $ma...
method getSluggableUniqueAttributeValue (line 95) | protected function getSluggableUniqueAttributeValue($name, $value)
method getSluggableSourceAttributeValue (line 114) | protected function getSluggableSourceAttributeValue($key)
method getSluggableSeparator (line 137) | public function getSluggableSeparator()
method newSluggableQuery (line 146) | protected function newSluggableQuery()
FILE: src/Database/Traits/SluggableTree.php
type SluggableTree (line 11) | trait SluggableTree
method fullSlugAttributes (line 17) | public function fullSlugAttributes()
method setFullSluggedValue (line 27) | protected function setFullSluggedValue($model)
method getFullSluggableAttributeValue (line 48) | protected function getFullSluggableAttributeValue($model, $fullslug = '')
method getFullSluggableFullSlugColumnName (line 64) | public function getFullSluggableFullSlugColumnName()
method getFullSluggableSlugColumnName (line 73) | public function getFullSluggableSlugColumnName()
FILE: src/Database/Traits/SoftDelete.php
type SoftDelete (line 14) | trait SoftDelete
method bootSoftDelete (line 24) | public static function bootSoftDelete()
method isSoftDelete (line 88) | public function isSoftDelete()
method forceDelete (line 96) | public function forceDelete()
method performDeleteOnModel (line 108) | protected function performDeleteOnModel()
method performSoftDeleteOnRelations (line 128) | protected function performSoftDeleteOnRelations()
method runSoftDelete (line 156) | protected function runSoftDelete()
method restore (line 183) | public function restore()
method performRestoreOnRelations (line 212) | protected function performRestoreOnRelations()
method trashed (line 242) | public function trashed()
method withTrashed (line 251) | public static function withTrashed()
method onlyTrashed (line 260) | public static function onlyTrashed()
method softDeleted (line 274) | public static function softDeleted($callback)
method restoring (line 284) | public static function restoring($callback)
method restored (line 294) | public static function restored($callback)
method isSoftDeleteEnabled (line 303) | public function isSoftDeleteEnabled()
method getDeletedAtColumn (line 312) | public function getDeletedAtColumn()
method getQualifiedDeletedAtColumn (line 321) | public function getQualifiedDeletedAtColumn()
FILE: src/Database/Traits/Sortable.php
type Sortable (line 28) | trait Sortable
method bootSortable (line 33) | public static function bootSortable()
method initializeSortable (line 41) | public function initializeSortable()
method setSortableOrder (line 60) | public function setSortableOrder($itemIds, $referencePool = null)
method processSortableOrdersInternal (line 103) | protected function processSortableOrdersInternal($itemIds, $referenceP...
method resetSortableOrdering (line 140) | public function resetSortableOrdering()
method getSortOrderColumn (line 153) | public function getSortOrderColumn()
method getQualifiedSortOrderColumn (line 162) | public function getQualifiedSortOrderColumn()
FILE: src/Database/Traits/SortableRelation.php
type SortableRelation (line 24) | trait SortableRelation
method initializeSortableRelation (line 34) | public function initializeSortableRelation()
method defineSortableRelations (line 63) | protected function defineSortableRelations()
method setSortableRelationOrder (line 100) | public function setSortableRelationOrder($relationName, $itemIds, $ref...
method processSortableRelationOrdersInternal (line 145) | protected function processSortableRelationOrdersInternal($relationName...
method isSortableRelation (line 182) | public function isSortableRelation($relationName)
method getRelationSortOrderColumn (line 190) | public function getRelationSortOrderColumn(string $relation): string
method getSortableRelations (line 198) | protected function getSortableRelations(): array
FILE: src/Database/Traits/Translatable.php
type Translatable (line 21) | trait Translatable
method initializeTranslatable (line 52) | public function initializeTranslatable()
method getTranslatableContext (line 86) | public function getTranslatableContext()
method getTranslatableDefault (line 98) | public function getTranslatableDefault()
method resolveTranslatableLocale (line 111) | protected function resolveTranslatableLocale()
method resolveTranslatableDefaultLocale (line 122) | protected function resolveTranslatableDefaultLocale()
method isTranslatableEnabled (line 136) | public function isTranslatableEnabled()
method shouldTranslate (line 145) | public function shouldTranslate()
method isTranslatableAttribute (line 158) | public function isTranslatableAttribute($key)
method getTranslatableAttributes (line 170) | public function getTranslatableAttributes()
method promoteTranslatableValues (line 184) | protected function promoteTranslatableValues()
method demoteTranslatableValues (line 222) | protected function demoteTranslatableValues()
method restoreTranslatableBaseValues (line 246) | protected function restoreTranslatableBaseValues()
method getTranslatableBaseValue (line 264) | public function getTranslatableBaseValue(string $key)
method getTranslation (line 280) | public function getTranslation($key, $locale, $useFallback = true)
method getTranslations (line 322) | public function getTranslations($key)
method hasTranslation (line 354) | public function hasTranslation($key, $locale = null)
method hasTranslations (line 385) | public function hasTranslations($locale = null)
method getTranslatedLocales (line 407) | public function getTranslatedLocales($key = null)
method setTranslation (line 437) | public function setTranslation($key, $locale, $value)
method setTranslations (line 469) | public function setTranslations($key, array $translations)
method forgetTranslation (line 483) | public function forgetTranslation($key, $locale)
method forgetTranslations (line 499) | public function forgetTranslations($key)
method forgetAllTranslations (line 519) | public function forgetAllTranslations($locale)
method setLocale (line 538) | public function setLocale($locale)
method getLocale (line 560) | public function getLocale()
method isTranslateDirty (line 573) | public function isTranslateDirty($attribute = null, $locale = null)
method getTranslateDirty (line 588) | public function getTranslateDirty($locale = null)
method getTranslatableOriginals (line 619) | public function getTranslatableOriginals($locale = null)
method syncTranslatableAttributes (line 636) | protected function syncTranslatableAttributes()
method storeTranslatableBasicData (line 656) | protected function storeTranslatableBasicData()
method storeTranslatableData (line 674) | protected function storeTranslatableData($locale)
method loadTranslatableData (line 723) | protected function loadTranslatableData($locale)
method scopeWhereTranslation (line 751) | public function scopeWhereTranslation($query, $key, $locale, $value, $...
method scopeOrderByTranslation (line 769) | public function scopeOrderByTranslation($query, $key, $locale, $direct...
method scopeWithTranslation (line 787) | public function scopeWithTranslation($query, $locale = null)
method scopeWithTranslations (line 801) | public function scopeWithTranslations($query)
method getTranslateAttributeModelClass (line 816) | public function getTranslateAttributeModelClass()
method getTranslateAttributeTable (line 828) | public function getTranslateAttributeTable()
FILE: src/Database/Traits/UserFootprints.php
type UserFootprints (line 12) | trait UserFootprints
method initializeUserFootprints (line 17) | public function initializeUserFootprints()
method updateUserFootprints (line 39) | public function updateUserFootprints()
method getCreatedUserIdColumn (line 61) | public function getCreatedUserIdColumn()
method getUpdatedUserIdColumn (line 70) | public function getUpdatedUserIdColumn()
method getUserFootprintAuth (line 78) | protected function getUserFootprintAuth()
FILE: src/Database/Traits/Validation.php
type Validation (line 17) | trait Validation
method initializeValidation (line 63) | public function initializeValidation()
method setValidationAttributeNames (line 101) | public function setValidationAttributeNames($attributeNames)
method setValidationAttributeName (line 113) | public function setValidationAttributeName($attr, $name)
method getValidationAttributes (line 122) | protected function getValidationAttributes()
method addValidationRule (line 130) | public function addValidationRule(string $name, $definition)
method removeValidationRule (line 150) | public function removeValidationRule(string $name, $definition = '*')
method getRelationValidationValue (line 181) | protected function getRelationValidationValue($relationName)
method makeValidator (line 253) | protected static function makeValidator($data, $rules, $customMessages...
method getValidationPresenceVerifier (line 276) | protected function getValidationPresenceVerifier()
method forceSave (line 289) | public function forceSave($options = null, $sessionKey = null)
method validate (line 298) | public function validate($rules = null, $customMessages = null, $attri...
method processValidationRules (line 463) | protected function processValidationRules($rules)
method processRuleFieldNames (line 511) | protected function processRuleFieldNames($rules)
method processValidationUniqueRule (line 537) | protected function processValidationUniqueRule($definition, $fieldName)
method isAttributeRequired (line 576) | public function isAttributeRequired($attribute, $checkDependencies = t...
method errors (line 628) | public function errors()
method validating (line 638) | public static function validating($callback)
method validated (line 648) | public static function validated($callback)
FILE: src/Database/TreeCollection.php
class TreeCollection (line 11) | class TreeCollection extends Collection
method toNested (line 20) | public function toNested($removeOrphans = true)
method listsNested (line 76) | public function listsNested($value, $key = null, $indent = ' &nbs...
FILE: src/Database/Updater.php
class Updater (line 13) | class Updater
method skipErrors (line 29) | public static function skipErrors($state = true)
method setUp (line 37) | public function setUp($file)
method packDown (line 64) | public function packDown($file)
method resolve (line 90) | public function resolve(string $path)
method runMethod (line 118) | protected function runMethod($migration, $method)
method isValidScript (line 133) | protected function isValidScript($object)
method getClassFromFile (line 153) | public function getClassFromFile($file)
FILE: src/Database/Updates/Migration.php
class Migration (line 5) | class Migration extends MigrationBase
FILE: src/Database/Updates/Seeder.php
class Seeder (line 8) | class Seeder extends SeederBase
method line (line 16) | public function line($string, $style = null)
FILE: src/Element/Dash/ReportDefinition.php
class ReportDefinition (line 27) | class ReportDefinition extends ElementBase
method initDefaultValues (line 32) | protected function initDefaultValues()
method displayAs (line 45) | public function displayAs(string $type): ReportDefinition
FILE: src/Element/ElementBase.php
class ElementBase (line 15) | abstract class ElementBase extends Extendable implements Arrayable, Arra...
method __construct (line 25) | public function __construct($config = [])
method initDefaultValues (line 35) | protected function initDefaultValues()
method evalConfig (line 42) | public function evalConfig(array $config)
method useConfig (line 49) | public function useConfig(array $config): ElementBase
method getConfig (line 61) | public function getConfig($key = null, $default = null)
method get (line 74) | public function get($key, $default = null)
method toArray (line 87) | public function toArray()
method jsonSerialize (line 95) | public function jsonSerialize(): array
method toJson (line 105) | public function toJson($options = 0)
method offsetExists (line 115) | public function offsetExists($offset): bool
method offsetGet (line 125) | public function offsetGet($offset): mixed
method offsetSet (line 135) | public function offsetSet($offset, $value): void
method offsetUnset (line 145) | public function offsetUnset($offset): void
method __call (line 156) | public function __call($method, $parameters)
method __get (line 168) | public function __get($key)
method __set (line 180) | public function __set($key, $value)
method __isset (line 191) | public function __isset($key)
method __unset (line 202) | public function __unset($key)
FILE: src/Element/ElementHolder.php
class ElementHolder (line 14) | class ElementHolder extends ElementBase implements IteratorAggregate
method getTouchedElements (line 24) | public function getTouchedElements(): array
method get (line 35) | public function get($key, $default = null)
method getIterator (line 51) | public function getIterator(): Traversable
FILE: src/Element/Filter/ScopeDefinition.php
class ScopeDefinition (line 33) | class ScopeDefinition extends ElementBase
method initDefaultValues (line 38) | protected function initDefaultValues()
method useConfig (line 51) | public function useConfig(array $config): ElementBase
method displayAs (line 68) | public function displayAs(string $type): ScopeDefinition
method hasOptions (line 78) | public function hasOptions(): bool
method options (line 88) | public function options($value = null)
method asOptionsDefinition (line 111) | public function asOptionsDefinition($options = null)
method setScopeValue (line 129) | public function setScopeValue($value)
FILE: src/Element/Form/FieldDefinition.php
class FieldDefinition (line 35) | class FieldDefinition extends ElementBase
method initDefaultValues (line 45) | protected function initDefaultValues()
method useConfig (line 67) | public function useConfig(array $config): ElementBase
method displayAs (line 82) | public function displayAs(string $type): FieldDefinition
method span (line 92) | public function span(string $value = 'full', string $spanClass = ''): ...
method hasOptions (line 104) | public function hasOptions(): bool
method options (line 121) | public function options($value = null)
method asOptionsDefinition (line 151) | public function asOptionsDefinition($options = null)
method matchesContext (line 169) | public function matchesContext($context): bool
FILE: src/Element/Form/FieldsetDefinition.php
class FieldsetDefinition (line 16) | class FieldsetDefinition extends ElementBase implements IteratorAggregate
method initDefaultValues (line 26) | protected function initDefaultValues()
method addField (line 37) | public function addField($name, FieldDefinition $field)
method removeField (line 47) | public function removeField($name)
method hasFields (line 61) | public function hasFields()
method getFields (line 71) | public function getFields()
method getField (line 86) | public function getField(string $field)
method getAllFields (line 99) | public function getAllFields()
method sortAllFields (line 107) | public function sortAllFields()
method getIterator (line 118) | public function getIterator(): ArrayIterator
FILE: src/Element/Lists/ColumnDefinition.php
class ColumnDefinition (line 26) | class ColumnDefinition extends ElementBase
method initDefaultValues (line 31) | protected function initDefaultValues()
method displayAs (line 48) | public function displayAs(string $type): ColumnDefinition
FILE: src/Element/Navigation/ItemDefinition.php
class ItemDefinition (line 19) | class ItemDefinition extends ElementBase
method initDefaultValues (line 24) | protected function initDefaultValues()
FILE: src/Element/OptionDefinition.php
class OptionDefinition (line 26) | class OptionDefinition extends ElementBase
method initDefaultValues (line 31) | protected function initDefaultValues()
method useOptionConfig (line 43) | public function useOptionConfig($value, $option): OptionDefinition
method evalChildOptions (line 86) | protected function evalChildOptions(array $children): array
FILE: src/Events/Dispatcher.php
class Dispatcher (line 11) | class Dispatcher extends DispatcherBase
method fire (line 16) | public function fire(...$args)
FILE: src/Events/EventServiceProvider.php
class EventServiceProvider (line 13) | class EventServiceProvider extends ServiceProvider
method register (line 18) | public function register()
FILE: src/Events/FakeDispatcher.php
class FakeDispatcher (line 11) | class FakeDispatcher extends EventFakeBase
method __construct (line 16) | public function __construct($dispatcher, $eventsToFake = [])
method fire (line 27) | public function fire(...$args)
FILE: src/Events/PriorityDispatcher.php
class PriorityDispatcher (line 14) | class PriorityDispatcher
method __construct (line 36) | public function __construct(?ContainerContract $container = null)
method listen (line 48) | public function listen($events, $listener = null, $priority = 0)
method subscribe (line 64) | public function subscribe($subscriber)
method listenOnce (line 93) | public function listenOnce($events, $listener, $priority = 0)
method fire (line 105) | public function fire($event, $payload = [], $halt = false)
method forget (line 115) | public function forget($event)
method fireEvent (line 129) | public function fireEvent($event, $params = [], $halt = false)
method setLaravelDispatcher (line 197) | public function setLaravelDispatcher(DispatcherContract $dispatcher): ...
method getLaravelDispatcher (line 207) | public function getLaravelDispatcher(): DispatcherContract
method createClassCallback (line 216) | protected function createClassCallback($callback)
method __call (line 241) | public function __call($method, $parameters)
FILE: src/Exception/AjaxException.php
class AjaxException (line 12) | class AjaxException extends ExceptionBase implements AjaxExceptionInterface
method __construct (line 22) | public function __construct($contents = null)
method getContents (line 39) | public function getContents()
method addContent (line 47) | public function addContent(string $key, $val)
method toAjaxData (line 55) | public function toAjaxData(): array
FILE: src/Exception/ApplicationException.php
class ApplicationException (line 10) | class ApplicationException extends ExceptionBase
FILE: src/Exception/ErrorHandler.php
class ErrorHandler (line 13) | class ErrorHandler
method handleException (line 41) | public function handleException(Throwable $proposedException)
method isNotFoundException (line 86) | protected function isNotFoundException($exception)
method applyMask (line 101) | public static function applyMask(Throwable $exception)
method removeMask (line 114) | public static function removeMask()
method getDetailedMessage (line 129) | public static function getDetailedMessage($exception)
method handleCustomError (line 148) | public function handleCustomError($exception)
method handleDetailedError (line 156) | public function handleDetailedError($exception)
FILE: src/Exception/ExceptionBase.php
class ExceptionBase (line 14) | class ExceptionBase extends Exception
method __construct (line 56) | public function __construct($message = "", $code = 0, ?Throwable $prev...
method getClassName (line 73) | public function getClassName()
method getErrorType (line 82) | public function getErrorType()
method getNiceFile (line 91) | public function getNiceFile()
method mask (line 103) | public static function mask($message = null, $code = 0)
method unmask (line 113) | public static function unmask()
method setMask (line 123) | public function setMask(Throwable $exception)
method applyMask (line 136) | public function applyMask(Throwable $exception)
method getTrueException (line 149) | public function getTrueException()
method getHighlight (line 168) | public function getHighlight()
method getHighlightLines (line 212) | public function getHighlightLines()
method getCallStack (line 230) | public function getCallStack()
method filterCallStack (line 273) | protected function filterCallStack($traceInfo)
method formatStackArguments (line 323) | protected function formatStackArguments($arguments)
FILE: src/Exception/ForbiddenException.php
class ForbiddenException (line 10) | class ForbiddenException extends ExceptionBase
FILE: src/Exception/NotFoundException.php
class NotFoundException (line 10) | class NotFoundException extends ExceptionBase
FILE: src/Exception/SystemException.php
class SystemException (line 10) | class SystemException extends ExceptionBase
FILE: src/Exception/ValidationException.php
class ValidationException (line 15) | class ValidationException extends ValidationExceptionBase
method __construct (line 35) | public function __construct($validation)
method resolveToValidator (line 46) | protected function resolveToValidator($validation)
method evalErrors (line 72) | protected function evalErrors()
method getErrors (line 88) | public function getErrors()
method getFields (line 96) | public function getFields()
method setFieldPrefix (line 104) | public function setFieldPrefix(array $prefix)
FILE: src/Extension/Container.php
class Container (line 9) | class Container
method extendClass (line 30) | public static function extendClass(string $class, callable $callback)
method extendBehavior (line 38) | public static function extendBehavior(string $class, callable $callback)
method clearExtensions (line 46) | public static function clearExtensions()
FILE: src/Extension/Extendable.php
class Extendable (line 17) | class Extendable
method __construct (line 29) | public function __construct()
method __get (line 37) | public function __get($name)
method __set (line 45) | public function __set($name, $value)
method __call (line 53) | public function __call($name, $params)
method __callStatic (line 61) | public static function __callStatic($name, $params)
method __sleep (line 69) | public function __sleep()
method __wakeup (line 79) | public function __wakeup()
method extend (line 87) | public static function extend(callable $callback)
FILE: src/Extension/ExtendableTrait.php
type ExtendableTrait (line 20) | trait ExtendableTrait
method extendableConstruct (line 40) | public function extendableConstruct()
method extendableDestruct (line 70) | public function extendableDestruct()
method extendableExtendCallback (line 85) | public static function extendableExtendCallback($callback)
method extensionExtractImplements (line 101) | protected function extensionExtractImplements(): array
method extensionExtractMethods (line 131) | protected function extensionExtractMethods($extensionName, $extensionO...
method addDynamicMethod (line 159) | public function addDynamicMethod($dynamicName, $method, $extension = n...
method addDynamicProperty (line 177) | public function addDynamicProperty($dynamicName, $value = null)
method extendClassWith (line 194) | public function extendClassWith($extensionName)
method isClassExtendedWith (line 220) | public function isClassExtendedWith($name)
method implementClassWith (line 230) | public function implementClassWith($extensionName)
method isClassInstanceOf (line 244) | public function isClassInstanceOf($interface): bool
method getClassExtension (line 273) | public function getClassExtension($name)
method asExtension (line 288) | public function asExtension($shortName)
method methodExists (line 307) | public function methodExists($name)
method getClassMethods (line 320) | public function getClassMethods()
method getClassMethodAsReflector (line 332) | public function getClassMethodAsReflector(string $name): ReflectionFun...
method getDynamicProperties (line 351) | public function getDynamicProperties()
method propertyExists (line 361) | public function propertyExists($name)
method extendableIsAccessible (line 390) | protected function extendableIsAccessible($class, $propertyName)
method extendableGet (line 402) | public function extendableGet($name)
method extendableSet (line 430) | public function extendableSet($name, $value)
method extendableCall (line 473) | public function extendableCall($name, $params = null)
method extendableCallStatic (line 503) | public static function extendableCallStatic($name, $params = null)
method getExtendableMethodFromExtensions (line 565) | protected function getExtendableMethodFromExtensions(string $name): ?a...
method getExtendableMethodFromDynamicMethods (line 584) | protected function getExtendableMethodFromDynamicMethods(string $name)...
method clearExtendedClasses (line 602) | public static function clearExtendedClasses()
FILE: src/Extension/ExtensionBase.php
class ExtensionBase (line 9) | class ExtensionBase
method extend (line 16) | public static function extend(callable $callback)
FILE: src/Extension/ExtensionTrait.php
type ExtensionTrait (line 10) | trait ExtensionTrait
method extensionApplyInitCallbacks (line 28) | public function extensionApplyInitCallbacks()
method extensionExtendCallback (line 45) | public static function extensionExtendCallback($callback)
method extensionHideMethod (line 61) | protected function extensionHideMethod($name)
method extensionHideProperty (line 69) | protected function extensionHideProperty($name)
method extensionIsHiddenMethod (line 77) | public function extensionIsHiddenMethod($name)
method extensionIsHiddenProperty (line 85) | public function extensionIsHiddenProperty($name)
method getCalledExtensionClass (line 93) | public static function getCalledExtensionClass()
FILE: src/Filesystem/Definitions.php
class Definitions (line 12) | class Definitions
method get (line 17) | public static function get(string $type): array
method getDefinitions (line 25) | public function getDefinitions(string $type): array
method isPathIgnored (line 48) | public static function isPathIgnored($path)
method ignoreFiles (line 71) | protected function ignoreFiles()
method ignorePatterns (line 86) | protected function ignorePatterns()
method defaultExtensions (line 98) | protected function defaultExtensions()
method assetExtensions (line 152) | protected function assetExtensions()
method imageExtensions (line 183) | protected function imageExtensions()
method videoExtensions (line 201) | protected function videoExtensions()
method audioExtensions (line 219) | protected function audioExtensions()
FILE: src/Filesystem/Filesystem.php
class Filesystem (line 14) | class Filesystem extends FilesystemBase
method anyname (line 41) | public function anyname($path)
method isDirectoryEmpty (line 51) | public function isDirectoryEmpty($directory)
method sizeToString (line 74) | public function sizeToString($bytes)
method localToPublic (line 105) | public function localToPublic($path)
method getRootSymlinks (line 142) | protected function getRootSymlinks(): array
method isLocalPath (line 167) | public function isLocalPath($path, $realpath = true)
method fromClass (line 183) | public function fromClass($className)
method existsInsensitive (line 195) | public function existsInsensitive($path)
method normalizePath (line 223) | public function normalizePath($path)
method nicePath (line 234) | public function nicePath($path)
method symbolizePath (line 249) | public function symbolizePath($path, $default = false)
method isPathSymbol (line 264) | public function isPathSymbol($path)
method put (line 284) | public function put($path, $contents, $lock = false)
method copy (line 297) | public function copy($path, $target)
method getSafe (line 307) | public function getSafe(string $path, float $limitKbs = 1)
method makeDirectory (line 324) | public function makeDirectory($path, $mode = 0755, $recursive = false,...
method chmod (line 369) | public function chmod($path, $mask = null)
method chmodRecursive (line 391) | public function chmodRecursive($path, $fileMask = null, $directoryMask...
method getFilePermissions (line 426) | public function getFilePermissions()
method getFolderPermissions (line 437) | public function getFolderPermissions()
method fileNameMatch (line 450) | public function fileNameMatch($fileName, $pattern)
method lastModifiedRecursive (line 465) | public function lastModifiedRecursive($path)
method searchDirectory (line 485) | public function searchDirectory($file, $directory, $rootDir = '')
FILE: src/Filesystem/FilesystemServiceProvider.php
class FilesystemServiceProvider (line 8) | class FilesystemServiceProvider extends FilesystemServiceProviderBase
method register (line 13) | public function register()
method registerNativeFilesystem (line 30) | protected function registerNativeFilesystem()
method registerCoreDisks (line 57) | protected function registerCoreDisks($config)
method configureDefaultPermissions (line 92) | protected function configureDefaultPermissions($config, $files)
FILE: src/Filesystem/Zip.php
class Zip (line 51) | class Zip extends ZipArchive
method extract (line 75) | public static function extract($source, $destination, $options = [])
method make (line 100) | public static function make($destination, $source, $options = [])
method add (line 127) | public function add($source, $options = [])
method folder (line 201) | public function folder($name, $source = null)
method remove (line 233) | public function remove($source)
method exclude (line 265) | public function exclude(array $paths): void
method isExcluded (line 280) | public function isExcluded(string $path): bool
method removePathPrefix (line 300) | protected function removePathPrefix($prefix, $path)
FILE: src/Flash/FlashBag.php
class FlashBag (line 12) | class FlashBag extends MessageBag
method __construct (line 34) | public function __construct(array $messages = [])
method check (line 51) | public function check()
method all (line 61) | public function all($format = null)
method messages (line 77) | public function messages()
method get (line 92) | public function get($key, $format = null)
method error (line 106) | public function error($message = null)
method success (line 120) | public function success($message = null)
method warning (line 134) | public function warning($message = null)
method info (line 148) | public function info($message = null)
method add (line 164) | public function add($key, $message)
method store (line 176) | public function store()
method forget (line 185) | public function forget($key = null)
method purge (line 207) | public function purge()
FILE: src/Flash/FlashServiceProvider.php
class FlashServiceProvider (line 6) | class FlashServiceProvider extends ServiceProvider implements Deferrable...
method register (line 11) | public function register()
method provides (line 23) | public function provides()
FILE: src/Foundation/Application.php
class Application (line 24) | class Application extends ApplicationBase
method configure (line 47) | public static function configure($basePath = null)
method registerBaseServiceProviders (line 63) | protected function registerBaseServiceProviders()
method bindPathsInContainer (line 79) | protected function bindPathsInContainer()
method publicPath (line 99) | public function publicPath($path = '')
method hasPublicFolder (line 109) | public function hasPublicFolder()
method cachePath (line 119) | public function cachePath($path = '')
method useCachePath (line 129) | public function useCachePath($path)
method pluginsPath (line 145) | public function pluginsPath($path = '')
method usePluginsPath (line 155) | public function usePluginsPath($path)
method themesPath (line 169) | public function themesPath($path = '')
method useThemesPath (line 179) | public function useThemesPath($path)
method tempPath (line 193) | public function tempPath($path = ''): string
method normalizeCachePath (line 204) | protected function normalizeCachePath($key, $default)
method before (line 220) | public function before($callback)
method after (line 230) | public function after($callback)
method error (line 240) | public function error(callable $callback)
method fatal (line 248) | public function fatal(callable $callback)
method runningInBackend (line 259) | public function runningInBackend()
method runningInFrontend (line 268) | public function runningInFrontend()
method runningInOctane (line 277) | public function runningInOctane()
method hasDatabase (line 286) | public function hasDatabase()
method setLocale (line 303) | public function setLocale($locale)
method registerConfiguredProviders (line 318) | public function registerConfiguredProviders()
method registerCoreContainerAliases (line 337) | public function registerCoreContainerAliases()
method registerClassAlias (line 392) | public function registerClassAlias(string $alias, string $class)
method registerClassAliases (line 400) | public function registerClassAliases(array $aliases)
method getCachedConfigPath (line 414) | public function getCachedConfigPath()
method getCachedRoutesPath (line 424) | public function getCachedRoutesPath()
method getCachedCompilePath (line 434) | public function getCachedCompilePath()
method getCachedServicesPath (line 444) | public function getCachedServicesPath()
method getCachedPackagesPath (line 454) | public function getCachedPackagesPath()
method getCachedClassesPath (line 464) | public function getCachedClassesPath()
method getCachedEventsPath (line 474) | public function getCachedEventsPath()
method getNamespace (line 484) | public function getNamespace()
method extendInstance (line 492) | public function extendInstance($abstract, Closure $callback)
FILE: src/Foundation/Bootstrap/HandleExceptions.php
class HandleExceptions (line 9) | class HandleExceptions extends HandleExceptionsBase
method shouldIgnoreDeprecationErrors (line 20) | protected function shouldIgnoreDeprecationErrors()
FILE: src/Foundation/Bootstrap/LoadConfiguration.php
class LoadConfiguration (line 12) | class LoadConfiguration extends LoadConfigurationBase
method bootstrap (line 17) | public function bootstrap(Application $app)
method loadConfigurationFiles (line 63) | protected function loadConfigurationFiles(Application $app, Repository...
FILE: src/Foundation/Bootstrap/RegisterOctober.php
class RegisterOctober (line 12) | class RegisterOctober
method bootstrap (line 44) | public function bootstrap(Application $app)
method configureClassLoader (line 96) | protected function configureClassLoader(Application $app)
method parseConfiguredPath (line 110) | protected function parseConfiguredPath(Application $app, string $path)...
method makeSystemPaths (line 120) | protected function makeSystemPaths(string $rootPath, array $subPaths):...
FILE: src/Foundation/Configuration/ApplicationBuilder.php
class ApplicationBuilder (line 9) | class ApplicationBuilder extends ApplicationBuilderBase
method withKernels (line 16) | public function withKernels()
method withExceptions (line 37) | public function withExceptions(?callable $using = null)
method withMiddleware (line 57) | public function withMiddleware(?callable $callback = null)
FILE: src/Foundation/Console/ClearCompiledCommand.php
class ClearCompiledCommand (line 5) | class ClearCompiledCommand extends ClearCompiledCommandBase
method handle (line 12) | public function handle()
FILE: src/Foundation/Console/Kernel.php
class Kernel (line 9) | class Kernel extends ConsoleKernel
method schedule (line 33) | protected function schedule(Schedule $schedule)
FILE: src/Foundation/Console/ProjectSetCommand.php
class ProjectSetCommand (line 16) | class ProjectSetCommand extends Command
method handle (line 31) | public function handle()
method storeProjectDetails (line 69) | protected function storeProjectDetails($result)
method storeProjectDetailsLocally (line 101) | protected function storeProjectDetailsLocally($result)
method requestServerData (line 118) | public function requestServerData(string $uri, array $postData = [])
method createServerUrl (line 157) | protected function createServerUrl($uri)
method makeHttpRequest (line 173) | protected function makeHttpRequest($url, $postData)
method getComposerUrl (line 203) | protected function getComposerUrl(bool $withProtocol = true): string
method injectJsonToFile (line 214) | protected function injectJsonToFile(string $filename, array $jsonArr, ...
method mergeRecursive (line 234) | protected function mergeRecursive(array $array1, $array2)
FILE: src/Foundation/Console/RouteCacheCommand.php
class RouteCacheCommand (line 5) | class RouteCacheCommand extends RouteCacheCommandBase
method getFreshApplicationRoutes (line 12) | protected function getFreshApplicationRoutes()
FILE: src/Foundation/Console/RouteListCommand.php
class RouteListCommand (line 9) | class RouteListCommand extends RouteListCommandBase
method __construct (line 17) | public function __construct(Router $router)
FILE: src/Foundation/Console/ServeCommand.php
class ServeCommand (line 6) | class ServeCommand extends ServeCommandParent
method handle (line 13) | public function handle()
method serverCommand (line 68) | protected function serverCommand()
FILE: src/Foundation/Exception/Handler.php
class Handler (line 32) | class Handler extends ExceptionHandler
method report (line 58) | public function report(Throwable $exception)
method render (line 102) | public function render($request, Throwable $exception)
method prepareException (line 171) | protected function prepareException(Throwable $e): Throwable
method getStatusCode (line 198) | protected function getStatusCode($exception)
method context (line 224) | protected function context()
method error (line 236) | public function error(callable $callback)
method hasBootedEvents (line 244) | protected function hasBootedEvents(): bool
FILE: src/Foundation/Http/Kernel.php
class Kernel (line 11) | class Kernel extends HttpKernel
FILE: src/Foundation/Http/Middleware/CheckForMaintenanceMode.php
class CheckForMaintenanceMode (line 15) | class CheckForMaintenanceMode extends PreventRequestsDuringMaintenance
method handle (line 20) | public function handle($request, Closure $next)
FILE: src/Foundation/Http/Middleware/EncryptCookies.php
class EncryptCookies (line 13) | class EncryptCookies extends EncryptCookiesBase
method __construct (line 18) | public function __construct(EncrypterContract $encrypter)
FILE: src/Foundation/Providers/AppServiceProvider.php
class AppServiceProvider (line 14) | class AppServiceProvider extends ServiceProvider implements DeferrablePr...
method register (line 19) | public function register()
method registerConsoleCommand (line 29) | protected function registerConsoleCommand(string $key, string $class)
method provides (line 44) | public function provides()
FILE: src/Foundation/Providers/ArtisanServiceProvider.php
class ArtisanServiceProvider (line 14) | class ArtisanServiceProvider extends ArtisanServiceProviderBase
method register (line 38) | public function register()
method registerRouteCacheCommand (line 57) | protected function registerRouteCacheCommand()
method registerRouteListCommand (line 67) | protected function registerRouteListCommand()
method registerServeCommand (line 77) | protected function registerServeCommand()
method registerClearCompiledCommand (line 87) | protected function registerClearCompiledCommand()
method registerProjectSetCommand (line 97) | protected function registerProjectSetCommand()
FILE: src/Foundation/Providers/ConsoleSupportServiceProvider.php
class ConsoleSupportServiceProvider (line 7) | class ConsoleSupportServiceProvider extends ConsoleSupportServiceProvide...
FILE: src/Foundation/Providers/CoreServiceProvider.php
class CoreServiceProvider (line 14) | class CoreServiceProvider extends ServiceProvider implements DeferrableP...
method register (line 19) | public function register()
method provides (line 28) | public function provides()
FILE: src/Foundation/Providers/DateServiceProvider.php
class DateServiceProvider (line 13) | class DateServiceProvider extends ServiceProvider
method register (line 18) | public function register()
method boot (line 26) | public function boot()
method setCarbonLocale (line 40) | protected function setCarbonLocale($locale)
method getFallbackLocale (line 56) | protected function getFallbackLocale($locale)
FILE: src/Foundation/Providers/ExecutionContextProvider.php
class ExecutionContextProvider (line 8) | class ExecutionContextProvider extends ServiceProvider
method register (line 13) | public function register()
method boot (line 23) | public function boot()
method determineContext (line 36) | protected function determineContext($app): string
method normalizeUrl (line 55) | protected function normalizeUrl($url)
FILE: src/Foundation/Providers/LogServiceProvider.php
class LogServiceProvider (line 8) | class LogServiceProvider extends LogServiceProviderBase
method register (line 13) | public function register()
method configureDefaultLogger (line 28) | protected function configureDefaultLogger($config)
method configureDefaultPermissions (line 47) | protected function configureDefaultPermissions($config, $files)
FILE: src/Halcyon/Builder.php
class Builder (line 20) | class Builder
method __construct (line 105) | public function __construct(DatasourceInterface $datasource, Processor...
method whereFileName (line 116) | public function whereFileName($fileName)
method from (line 128) | public function from($dirName)
method offset (line 140) | public function offset($value)
method skip (line 152) | public function skip($value)
method limit (line 162) | public function limit($value)
method take (line 176) | public function take($value)
method find (line 186) | public function find($fileName)
method first (line 195) | public function first()
method get (line 205) | public function get($columns = ['*'])
method pluck (line 225) | public function pluck($column, $key = null)
method lists (line 247) | public function lists($column, $key = null)
method getFresh (line 257) | public function getFresh($columns = ['*'])
method runSelect (line 272) | protected function runSelect()
method setModel (line 298) | public function setModel(Model $model)
method toCompiled (line 313) | public function toCompiled()
method insert (line 322) | public function insert(array $values)
method update (line 346) | public function update(array $values)
method delete (line 377) | public function delete()
method lastModified (line 394) | public function lastModified()
method getModels (line 412) | public function getModels(array $results)
method getModel (line 436) | public function getModel()
method validateFileName (line 449) | protected function validateFileName($fileName = null)
method validateDirectoryName (line 472) | protected function validateDirectoryName($dirName = null)
method validateFileNameExtension (line 487) | protected function validateFileNameExtension($fileName, $allowedExtens...
method validateFileNamePath (line 506) | protected function validateFileNamePath($filePath, $maxNesting = 5)
method validateFileNamePattern (line 536) | protected function validateFileNamePattern($fileName)
method remember (line 551) | public function remember($minutes, $key = null)
method rememberForever (line 563) | public function rememberForever($key = null)
method cacheTags (line 573) | public function cacheTags($cacheTags)
method cacheDriver (line 585) | public function cacheDriver($cacheDriver)
method getCached (line 597) | public function getCached($columns = ['*'])
method isCacheBusted (line 643) | protected function isCacheBusted($result)
method getCache (line 666) | protected function getCache()
method getCacheKey (line 677) | public function getCacheKey()
method generateCacheKey (line 686) | public function generateCacheKey()
method getCacheCallback (line 704) | protected function getCacheCallback($columns)
method processInitCacheData (line 716) | protected function processInitCacheData($data)
method __call (line 737) | public function __call($method, $parameters)
FILE: src/Halcyon/Collection.php
class Collection (line 11) | class Collection extends CollectionBase
FILE: src/Halcyon/Concerns/HasEvents.php
type HasEvents (line 11) | trait HasEvents
method bootNicerEvents (line 31) | protected function bootNicerEvents()
method initializeModelEvent (line 67) | protected function initializeModelEvent()
method flushEventListeners (line 76) | public static function flushEventListeners()
method getObservableEvents (line 95) | public function getObservableEvents()
method setObservableEvents (line 113) | public function setObservableEvents(array $observables)
method addObservableEvents (line 125) | public function addObservableEvents($observables)
method removeObservableEvents (line 137) | public function removeObservableEvents($observables)
method getEventDispatcher (line 148) | public static function getEventDispatcher()
method setEventDispatcher (line 158) | public static function setEventDispatcher(Dispatcher $dispatcher)
method unsetEventDispatcher (line 167) | public static function unsetEventDispatcher()
method registerModelEvent (line 179) | protected static function registerModelEvent($event, $callback, $prior...
method fireModelEvent (line 194) | protected function fireModelEvent($event, $halt = true)
method fetching (line 215) | public static function fetching($callback)
method fetched (line 225) | public static function fetched($callback)
method saving (line 237) | public static function saving($callback, $priority = 0)
method saved (line 249) | public static function saved($callback, $priority = 0)
method updating (line 261) | public static function updating($callback, $priority = 0)
method updated (line 273) | public static function updated($callback, $priority = 0)
method creating (line 285) | public static function creating($callback, $priority = 0)
method created (line 297) | public static function created($callback, $priority = 0)
method deleting (line 309) | public static function deleting($callback, $priority = 0)
method deleted (line 321) | public static function deleted($callback, $priority = 0)
method afterBoot (line 330) | protected function afterBoot()
method afterInit (line 349) | protected function afterInit()
method beforeCreate (line 367) | protected function beforeCreate()
method afterCreate (line 387) | protected function afterCreate()
method beforeUpdate (line 405) | protected function beforeUpdate()
method afterUpdate (line 425) | protected function afterUpdate()
method beforeSave (line 445) | protected function beforeSave()
method afterSave (line 465) | protected function afterSave()
method beforeDelete (line 485) | protected function beforeDelete()
method afterDelete (line 505) | protected function afterDelete()
method beforeFetch (line 523) | protected function beforeFetch()
method afterFetch (line 543) | protected function afterFetch()
FILE: src/Halcyon/Datasource/AutoDatasource.php
class AutoDatasource (line 13) | class AutoDatasource extends Datasource implements DatasourceInterface
method __construct (line 28) | public function __construct(array $datasources)
method hasTemplate (line 40) | public function hasTemplate(string $dirName, string $fileName, string ...
method selectOne (line 54) | public function selectOne(string $dirName, string $fileName, string $e...
method select (line 70) | public function select(string $dirName, array $options = []): array
method insert (line 85) | public function insert(string $dirName, string $fileName, string $exte...
method update (line 93) | public function update(string $dirName, string $fileName, string $exte...
method delete (line 111) | public function delete(string $dirName, string $fileName, string $exte...
method forceDelete (line 119) | public function forceDelete(string $dirName, string $fileName, string ...
method lastModified (line 135) | public function lastModified(string $dirName, string $fileName, string...
method makeCacheKey (line 151) | public function makeCacheKey(string $name = ''): string
method hasIndex (line 171) | public function hasIndex(int $index)
method hasModelAtIndex (line 179) | public function hasModelAtIndex($index, Model $model): bool
method updateModelAtIndex (line 200) | public function updateModelAtIndex(int $index, Model $model): int
method forceDeleteModelAtIndex (line 221) | public function forceDeleteModelAtIndex(int $index, Model $model): bool
FILE: src/Halcyon/Datasource/Datasource.php
class Datasource (line 11) | class Datasource
method getPostProcessor (line 28) | public function getPostProcessor(): Processor
method delete (line 36) | public function delete(string $dirName, string $fileName, string $exte...
method forceDelete (line 44) | public function forceDelete(string $dirName, string $fileName, string ...
method makeCacheKey (line 58) | public function makeCacheKey(string $name = ''): string
FILE: src/Halcyon/Datasource/DatasourceInterface.php
type DatasourceInterface (line 9) | interface DatasourceInterface
method hasTemplate (line 14) | public function hasTemplate(string $dirName, string $fileName, string ...
method selectOne (line 19) | public function selectOne(string $dirName, string $fileName, string $e...
method select (line 24) | public function select(string $dirName, array $options = []): array;
method insert (line 29) | public function insert(string $dirName, string $fileName, string $exte...
method update (line 34) | public function update(string $dirName, string $fileName, string $exte...
method delete (line 39) | public function delete(string $dirName, string $fileName, string $exte...
method forceDelete (line 44) | public function forceDelete(string $dirName, string $fileName, string ...
method lastModified (line 49) | public function lastModified(string $dirName, string $fileName, string...
method makeCacheKey (line 54) | public function makeCacheKey(string $name = ''): string;
FILE: src/Halcyon/Datasource/DbDatasource.php
class DbDatasource (line 17) | class DbDatasource extends Datasource implements DatasourceInterface
method __construct (line 42) | public function __construct(string $source, string $table)
method hasTemplate (line 54) | public function hasTemplate(string $dirName, string $fileName, string ...
method selectOne (line 62) | public function selectOne(string $dirName, string $fileName, string $e...
method select (line 92) | public function select(string $dirName, array $options = []): array
method insert (line 173) | public function insert(string $dirName, string $fileName, string $exte...
method update (line 224) | public function update(string $dirName, string $fileName, string $exte...
method delete (line 277) | public function delete(string $dirName, string $fileName, string $exte...
method lastModified (line 302) | public function lastModified(string $dirName, string $fileName, string...
method makeCacheKey (line 325) | public function makeCacheKey(string $name = ''): string
method getBaseQuery (line 333) | protected function getBaseQuery()
method getQuery (line 341) | protected function getQuery(bool $withTrashed = true)
method makeFilePath (line 370) | protected function makeFilePath(string $dirName, string $fileName, str...
method flushCache (line 378) | protected function flushCache()
FILE: src/Halcyon/Datasource/FileDatasource.php
class FileDatasource (line 19) | class FileDatasource extends Datasource implements DatasourceInterface
method __construct (line 34) | public function __construct(string $basePath, Filesystem $files)
method hasTemplate (line 46) | public function hasTemplate(string $dirName, string $fileName, string ...
method selectOne (line 54) | public function selectOne(string $dirName, string $fileName, string $e...
method select (line 77) | public function select(string $dirName, array $options = []): array
method insert (line 156) | public function insert(string $dirName, string $fileName, string $exte...
method update (line 177) | public function update(string $dirName, string $fileName, string $exte...
method delete (line 211) | public function delete(string $dirName, string $fileName, string $exte...
method lastModified (line 226) | public function lastModified(string $dirName, string $fileName, string...
method validateDirectoryForSave (line 242) | protected function validateDirectoryForSave(string $dirName, string $f...
method makeFilePath (line 271) | protected function makeFilePath(string $dirName, string $fileName, str...
method getBasePath (line 279) | public function getBasePath(): string
method makeCacheKey (line 287) | public function makeCacheKey(string $name = ''): string
FILE: src/Halcyon/Datasource/Resolver.php
class Resolver (line 9) | class Resolver implements ResolverInterface
method __construct (line 24) | public function __construct(array $datasources = [])
method datasource (line 34) | public function datasource(?string $name = null): DatasourceInterface
method addDatasource (line 46) | public function addDatasource(string $name, DatasourceInterface $datas...
method hasDatasource (line 54) | public function hasDatasource(string $name): bool
method getDefaultDatasource (line 62) | public function getDefaultDatasource(): ?string
method setDefaultDatasource (line 70) | public function setDefaultDatasource(string $name)
FILE: src/Halcyon/Datasource/ResolverInterface.php
type ResolverInterface (line 9) | interface ResolverInterface
method datasource (line 14) | public function datasource(?string $name = null): DatasourceInterface;
method getDefaultDatasource (line 19) | public function getDefaultDatasource(): ?string;
method setDefaultDatasource (line 24) | public function setDefaultDatasource(string $name);
FILE: src/Halcyon/Exception/CreateDirectoryException.php
class CreateDirectoryException (line 12) | class CreateDirectoryException extends RuntimeException
method setInvalidPath (line 22) | public function setInvalidPath(string $path): CreateDirectoryException
method getInvalidPath (line 34) | public function getInvalidPath(): string
FILE: src/Halcyon/Exception/CreateFileException.php
class CreateFileException (line 12) | class CreateFileException extends RuntimeException
method setInvalidPath (line 22) | public function setInvalidPath(string $path): CreateFileException
method getInvalidPath (line 34) | public function getInvalidPath(): string
FILE: src/Halcyon/Exception/DeleteFileException.php
class DeleteFileException (line 12) | class DeleteFileException extends RuntimeException
method setInvalidPath (line 22) | public function setInvalidPath(string $path): DeleteFileException
method getInvalidPath (line 34) | public function getInvalidPath(): string
FILE: src/Halcyon/Exception/FileExistsException.php
class FileExistsException (line 12) | class FileExistsException extends RuntimeException
method setInvalidPath (line 22) | public function setInvalidPath(string $path): FileExistsException
method getInvalidPath (line 34) | public function getInvalidPath(): string
FILE: src/Halcyon/Exception/InvalidDirectoryNameException.php
class InvalidDirectoryNameException (line 11) | class InvalidDirectoryNameException extends RuntimeException
method setInvalidDirectoryName (line 21) | public function setInvalidDirectoryName(string $invalidDirName): Inval...
method getInvalidDirectoryName (line 33) | public function getInvalidDirectoryName(): string
FILE: src/Halcyon/Exception/InvalidExtensionException.php
class InvalidExtensionException (line 11) | class InvalidExtensionException extends RuntimeException
method setInvalidExtension (line 26) | public function setInvalidExtension(string $invalidExtension): Invalid...
method getInvalidExtension (line 38) | public function getInvalidExtension(): string
method setAllowedExtensions (line 46) | public function setAllowedExtensions(array $allowedExtensions): Invali...
method getAllowedExtensions (line 56) | public function getAllowedExtensions(): array
FILE: src/Halcyon/Exception/InvalidFileNameException.php
class InvalidFileNameException (line 11) | class InvalidFileNameException extends RuntimeException
method setInvalidFileName (line 21) | public function setInvalidFileName(string $invalidFileName): InvalidFi...
method getInvalidFileName (line 33) | public function getInvalidFileName(): string
FILE: src/Halcyon/Exception/MissingFileNameException.php
class MissingFileNameException (line 11) | class MissingFileNameException extends RuntimeException
method setModel (line 21) | public function setModel(string $model): MissingFileNameException
method getModel (line 33) | public function getModel(): string
FILE: src/Halcyon/Exception/ModelException.php
class ModelException (line 14) | class ModelException extends ValidationException
method __construct (line 29) | public function __construct(Model $model)
method errors (line 43) | public function errors(): array
method getErrors (line 51) | public function getErrors(): MessageBag
method getModel (line 59) | public function getModel(): Model
FILE: src/Halcyon/HalcyonServiceProvider.php
class HalcyonServiceProvider (line 12) | class HalcyonServiceProvider extends ServiceProvider
method boot (line 19) | public function boot()
method register (line 33) | public function register()
FILE: src/Halcyon/Migrations/2021_10_01_000001_Db_Templates.php
method up (line 8) | public function up()
method down (line 21) | public function down()
FILE: src/Halcyon/Model.php
class Model (line 20) | class Model extends Extendable implements ArrayAccess, Arrayable, Jsonab...
method __construct (line 127) | public function __construct(array $attributes = [])
method bootIfNotBooted (line 147) | protected function bootIfNotBooted()
method booting (line 165) | protected static function booting()
method boot (line 173) | protected static function boot()
method bootTraits (line 181) | protected static function bootTraits()
method initializeTraits (line 211) | protected function initializeTraits()
method booted (line 221) | protected static function booted()
method clearBootedModels (line 229) | public static function clearBootedModels()
method getIdAttribute (line 239) | public function getIdAttribute()
method getBaseFileNameAttribute (line 248) | public function getBaseFileNameAttribute()
method addFillable (line 263) | public function addFillable($attributes = null)
method addPurgeable (line 275) | public function addPurgeable($attributes = null)
method getSettingsAttribute (line 287) | public function getSettingsAttribute()
method setSettingsAttribute (line 308) | public function setSettingsAttribute($value)
method setFileNameAttribute (line 319) | public function setFileNameAttribute($value)
method getObjectTypeDirName (line 335) | public function getObjectTypeDirName()
method getAllowedExtensions (line 344) | public function getAllowedExtensions()
method isCompoundObject (line 353) | public function isCompoundObject()
method getWrapCode (line 362) | public function getWrapCode()
method getMaxNesting (line 371) | public function getMaxNesting()
method isLoadedFromCache (line 380) | public function isLoadedFromCache()
method setLoadedFromCache (line 389) | public function setLoadedFromCache($value)
method fill (line 399) | public function fill(array $attributes)
method fillableFromArray (line 415) | protected function fillableFromArray(array $attributes)
method newInstance (line 435) | public function newInstance($attributes = [], $exists = false)
method newFromBuilder (line 453) | public function newFromBuilder($attributes = [], $datasource = null)
method hydrate (line 476) | public static function hydrate(array $items, $datasource = null)
method create (line 492) | public static function create(array $attributes = [])
method query (line 505) | public static function query()
method on (line 515) | public static function on($datasource = null)
method all (line 530) | public static function all()
method isFillable (line 542) | public function isFillable($key)
method toJson (line 564) | public function toJson($options = 0)
method jsonSerialize (line 572) | public function jsonSerialize(): array
method toArray (line 581) | public function toArray()
method attributesToArray (line 590) | public function attributesToArray()
method getArrayableAppends (line 624) | protected function getArrayableAppends()
method getAttribute (line 640) | public function getAttribute($key)
method getAttributeFromArray (line 669) | protected function getAttributeFromArray($key)
method hasGetMutator (line 681) | public function hasGetMutator($key)
method mutateAttribute (line 692) | protected function mutateAttribute($key, $value)
method mutateAttributeForArray (line 703) | protected function mutateAttributeForArray($key, $value)
method setAttribute (line 716) | public function setAttribute($key, $value)
method hasSetMutator (line 749) | public function hasSetMutator($key)
method getAttributes (line 758) | public function getAttributes()
method setRawAttributes (line 769) | public function setRawAttributes(array $attributes, $sync = false)
method getOriginal (line 786) | public function getOriginal($key = null, $default = null)
method syncOriginal (line 795) | public function syncOriginal()
method syncOriginalAttribute (line 807) | public function syncOriginalAttribute($attribute)
method isDirty (line 819) | public function isDirty($attributes = null)
method getDirty (line 844) | public function getDirty()
method originalIsNumericallyEquivalent (line 875) | protected function originalIsNumericallyEquivalent($key)
method delete (line 889) | public function delete()
method performDeleteOnModel (line 916) | protected function performDeleteOnModel()
method update (line 927) | public function update(array $attributes = [])
method save (line 942) | public function save(?array $options = null)
method saveInternal (line 952) | public function saveInternal(array $options = [])
method finishSave (line 988) | protected function finishSave(array $options)
method performUpdate (line 1004) | protected function performUpdate(Builder $query, array $options = [])
method performInsert (line 1036) | protected function performInsert(Builder $query, array $options = [])
method newQuery (line 1062) | public function newQuery()
method newCollection (line 1077) | public function newCollection(array $models = [])
method getFileNameParts (line 1086) | public function getFileNameParts($fileName = null)
method getDatasource (line 1110) | public function getDatasource()
method getDatasourceName (line 1120) | public function getDatasourceName()
method setDatasource (line 1131) | public function setDatasource($name)
method resolveDatasource (line 1144) | public static function resolveDatasource($datasource = null)
method getDatasourceResolver (line 1154) | public static function getDatasourceResolver()
method setDatasourceResolver (line 1165) | public static function setDatasourceResolver(Resolver $resolver)
method unsetDatasourceResolver (line 1175) | public static function unsetDatasourceResolver()
method getCacheManager (line 1185) | public static function getCacheManager()
method setCacheManager (line 1196) | public static function setCacheManager($cache)
method unsetCacheManager (line 1206) | public static function unsetCacheManager()
method initCacheItem (line 1216) | public static function initCacheItem(&$item)
method getMutatedAttributes (line 1225) | public function getMutatedAttributes()
method cacheMutatedAttributes (line 1242) | public static function cacheMutatedAttributes($class)
method __get (line 1264) | public function __get($key)
method __set (line 1280) | public function __set($key, $value)
method offsetExists (line 1296) | public function offsetExists($offset): bool
method offsetGet (line 1307) | public function offsetGet($offset): mixed
method offsetSet (line 1319) | public function offsetSet($offset, $value): void
method offsetUnset (line 1330) | public function offsetUnset($offset): void
method __isset (line 1341) | public function __isset($key)
method __unset (line 1356) | public function __unset($key)
method __call (line 1368) | public function __call($method, $parameters)
method __callStatic (line 1386) | public static function __callStatic($method, $parameters)
method __toString (line 1398) | public function __toString()
method __sleep (line 1406) | public function __sleep()
method __wakeup (line 1418) | public function __wakeup()
FILE: src/Halcyon/Processors/Processor.php
class Processor (line 12) | class Processor
method processSelectOne (line 22) | public function processSelectOne(Builder $query, $result)
method processSelect (line 40) | public function processSelect(Builder $query, $results)
method parseTemplateContent (line 62) | protected function parseTemplateContent($query, $result, $fileName)
method processInsert (line 88) | public function processInsert(Builder $query, $data)
method processUpdate (line 105) | public function processUpdate(Builder $query, $data)
FILE: src/Halcyon/Processors/SectionParser.php
class SectionParser (line 13) | class SectionParser
method render (line 23) | public static function render($data, $options = [])
method parse (line 104) | public static function parse($content, $options = [])
method parseOffset (line 159) | public static function parseOffset($content)
method cleanTemplateSection (line 191) | protected static function cleanTemplateSection($content)
method splitContentSections (line 202) | protected static function splitContentSections($content)
method calculateLinePosition (line 214) | protected static function calculateLinePosition($content, $instance = 1)
method adjustLinePosition (line 240) | protected static function adjustLinePosition($content, $startLine = -1)
FILE: src/Halcyon/Traits/Validation.php
type Validation (line 10) | trait Validation
method bootValidation (line 50) | public static function bootValidation()
method getValidationAttributes (line 80) | protected function getValidationAttributes()
method makeValidator (line 90) | protected static function makeValidator($data, $rules, $customMessages...
method forceSave (line 99) | public function forceSave($options = null)
method validate (line 108) | public function validate($rules = null, $customMessages = null, $attri...
method processValidationRules (line 219) | protected function processValidationRules($rules)
method processRuleFieldNames (line 259) | protected function processRuleFieldNames($rules)
method isAttributeRequired (line 282) | public function isAttributeRequired($attribute)
method errors (line 315) | public function errors()
method validating (line 325) | public static function validating($callback)
method validated (line 335) | public static function validated($callback)
method getModelValidator (line 344) | public static function getModelValidator()
method setModelValidator (line 358) | public static function setModelValidator($validator)
method unsetModelValidator (line 367) | public static function unsetModelValidator()
FILE: src/Html/BlockBuilder.php
class BlockBuilder (line 12) | class BlockBuilder
method put (line 27) | public function put(string $name)
method startBlock (line 35) | public function startBlock(string $name)
method endPut (line 45) | public function endPut(bool $append = false)
method endBlock (line 54) | public function endBlock(bool $append = false)
method set (line 74) | public function set(string $name, $content)
method append (line 82) | public function append(string $name, $content)
method placeholder (line 94) | public function placeholder(string $name, $default = null)
method has (line 109) | public function has(string $name): bool
method get (line 117) | public function get(string $name, $default = null)
method reset (line 129) | public function reset()
FILE: src/Html/FormBuilder.php
class FormBuilder (line 14) | class FormBuilder
method __construct (line 104) | public function __construct(HtmlBuilder $html, UrlGeneratorBase $url, ...
method open (line 117) | public function open(array $options = [])
method ajax (line 175) | public function ajax($handler, array $options = [])
method model (line 204) | public function model($model, array $options = [])
method setModel (line 216) | public function setModel($model)
method close (line 225) | public function close()
method token (line 238) | public function token()
method label (line 254) | public function label($name, $value = null, $options = [])
method formatLabel (line 271) | protected function formatLabel($name, $value)
method input (line 284) | public function input($type, $name, $value = null, $options = [])
method text (line 316) | public function text($name, $value = null, $options = [])
method password (line 327) | public function password($name, $options = [])
method hidden (line 339) | public function hidden($name, $value = null, $options = [])
method email (line 351) | public function email($name, $value = null, $options = [])
method number (line 363) | public function number($name, $value = null, $options = [])
method url (line 375) | public function url($name, $value = null, $options = [])
method file (line 386) | public function file($name, $options = [])
method textarea (line 402) | public function textarea($name, $value = null, $options = [])
method setTextAreaSize (line 432) | protected function setTextAreaSize($options)
method setQuickTextAreaSize (line 454) | protected function setQuickTextAreaSize($options)
method select (line 473) | public function select($name, $list = [], $selected = null, $options =...
method selectOptions (line 523) | public function selectOptions($name, $list = [], $selected = null, $op...
method selectRange (line 537) | public function selectRange($name, $begin, $end, $selected = null, $op...
method selectYear (line 553) | public function selectYear()
method selectMonth (line 566) | public function selectMonth($name, $selected = null, $options = [], $f...
method getSelectOption (line 585) | public function getSelectOption($display, $value, $selected)
method optionGroup (line 601) | protected function optionGroup($list, $label, $selected)
method option (line 619) | protected function option($display, $value, $selected)
method getSelectedValue (line 634) | protected function getSelectedValue($value, $selected)
method checkbox (line 655) | public function checkbox($name, $value = 1, $checked = null, $options ...
method radio (line 668) | public function radio($name, $value = null, $checked = null, $options ...
method checkable (line 686) | protected function checkable($type, $name, $value, $checked, $options)
method getCheckedState (line 705) | protected function getCheckedState($type, $name, $value, $checked)
method getCheckboxCheckedState (line 726) | protected function getCheckboxCheckedState($name, $value, $checked)
method getRadioCheckedState (line 752) | protected function getRadioCheckedState($name, $value, $checked)
method missingOldAndModel (line 766) | protected function missingOldAndModel($name)
method reset (line 777) | public function reset($value, $attributes = [])
method image (line 789) | public function image($url, $name = null, $attributes = [])
method submit (line 802) | public function submit($value = null, $options = [])
method button (line 813) | public function button($value = null, $options = [])
method getMethod (line 827) | protected function getMethod($method)
method getAction (line 839) | protected function getAction(array $options)
method getUrlAction (line 867) | protected function getUrlAction($options)
method getRouteAction (line 881) | protected function getRouteAction($options)
method getControllerAction (line 895) | protected function getControllerAction($options)
method getAppendage (line 909) | protected function getAppendage($method)
method getIdAttribute (line 936) | public function getIdAttribute($name, $attributes)
method getValueAttribute (line 953) | public function getValueAttribute($name, $value = null)
method getModelValueAttribute (line 977) | protected function getModelValueAttribute($name)
method old (line 992) | public function old($name)
method oldInputIsEmpty (line 1003) | public function oldInputIsEmpty()
method transformKey (line 1013) | protected function transformKey($key)
method getSessionStore (line 1022) | public function getSessionStore()
method setSessionStore (line 1032) | public function setSessionStore(Session $session)
method value (line 1046) | public function value($name, $value = null)
method requestHandler (line 1072) | protected function requestHandler($name = null)
method sessionKey (line 1085) | public function sessionKey($sessionKey = null)
method getSessionKey (line 1098) | public function getSessionKey()
FILE: src/Html/Helper.php
class Helper (line 9) | class Helper
method nameToId (line 18) | public static function nameToId($string)
method nameToArray (line 30) | public static function nameToArray($string)
method nameToDot (line 61) | public static function nameToDot($string)
method reduceNameHierarchy (line 76) | public static function reduceNameHierarchy($fieldName, $level)
FILE: src/Html/HtmlBuilder.php
class HtmlBuilder (line 15) | class HtmlBuilder
method __construct (line 32) | public function __construct(?UrlGenerator $url = null)
method entities (line 43) | public function entities($value)
method decode (line 54) | public function decode($value)
method script (line 67) | public function script($url, $attributes = [], $secure = null)
method style (line 82) | public function style($url, $attributes = [], $secure = null)
method image (line 102) | public function image($url, $alt = null
Condensed preview — 555 files, each showing path, character count, and a content snippet. Download the .json file or copy for the full structured content (1,891K chars).
[
{
"path": ".gitattributes",
"chars": 150,
"preview": "/tests export-ignore\n/.github export-ignore\n/phpcs.xml export-ignore\n/phpunit.xml export-ignore\n"
},
{
"path": ".github/workflows/tests.yml",
"chars": 814,
"preview": "name: Tests\n\non:\n push:\n branches:\n - 2.x\n - 3.x\n - 4.x\n - develop\n pull_request:\n\njobs:\n phpU"
},
{
"path": ".gitignore",
"chars": 153,
"preview": "# Composer files\n/vendor\ncomposer.phar\ncomposer.lock\n\n# Editor files\n.idea\n.vscode\n.claude\n\n# Other files\n.DS_Store\nphp_"
},
{
"path": "CREDITS.md",
"chars": 677,
"preview": "# Credits\n\nThis library was created with help from the following packages:\n\n\"Laravel\", Copyright (c) Taylor Otwell\nhttps"
},
{
"path": "LICENSE.md",
"chars": 26767,
"preview": "Copyright (c) 2013-2022 Responsiv Pty Ltd\n\nThis End User License Agreement (“EULA”) constitutes a binding agreement betw"
},
{
"path": "README.md",
"chars": 333,
"preview": "October Rain\n=======\n\nThis repository contains the core library of October CMS. If you want to build a website using Oct"
},
{
"path": "composer.json",
"chars": 2095,
"preview": "{\n \"name\": \"october/rain\",\n \"description\": \"October Rain Library\",\n \"homepage\": \"http://octobercms.com\",\n \"k"
},
{
"path": "contracts/Database/CurrencyableInterface.php",
"chars": 630,
"preview": "<?php namespace October\\Contracts\\Database;\n\n/**\n * CurrencyableInterface\n *\n * @package october\\contracts\n * @author Al"
},
{
"path": "contracts/Database/MultisiteGroupInterface.php",
"chars": 568,
"preview": "<?php namespace October\\Contracts\\Database;\n\n/**\n * MultisiteGroupInterface\n *\n * @package october\\contracts\n * @author "
},
{
"path": "contracts/Database/MultisiteInterface.php",
"chars": 508,
"preview": "<?php namespace October\\Contracts\\Database;\n\n/**\n * MultisiteInterface\n *\n * @package october\\contracts\n * @author Alexe"
},
{
"path": "contracts/Database/NestedSetInterface.php",
"chars": 403,
"preview": "<?php namespace October\\Contracts\\Database;\n\n/**\n * NestedSetInterface\n *\n * @package october\\contracts\n * @author Alexe"
},
{
"path": "contracts/Database/SoftDeleteInterface.php",
"chars": 470,
"preview": "<?php namespace October\\Contracts\\Database;\n\n/**\n * SoftDeleteInterface\n *\n * @package october\\contracts\n * @author Alex"
},
{
"path": "contracts/Database/SortableInterface.php",
"chars": 288,
"preview": "<?php namespace October\\Contracts\\Database;\n\n/**\n * SortableInterface\n *\n * @package october\\contracts\n * @author Alexey"
},
{
"path": "contracts/Database/SortableRelationInterface.php",
"chars": 702,
"preview": "<?php namespace October\\Contracts\\Database;\n\n/**\n * SortableRelationInterface\n *\n * @package october\\contracts\n * @autho"
},
{
"path": "contracts/Database/TranslatableInterface.php",
"chars": 630,
"preview": "<?php namespace October\\Contracts\\Database;\n\n/**\n * TranslatableInterface\n *\n * @package october\\contracts\n * @author Al"
},
{
"path": "contracts/Database/TreeInterface.php",
"chars": 594,
"preview": "<?php namespace October\\Contracts\\Database;\n\nuse Illuminate\\Support\\Collection;\n\n/**\n * TreeInterface\n *\n * @package oct"
},
{
"path": "contracts/Database/ValidationInterface.php",
"chars": 445,
"preview": "<?php namespace October\\Contracts\\Database;\n\n/**\n * ValidationInterface\n *\n * @package october\\contracts\n * @author Alex"
},
{
"path": "contracts/Element/FilterElement.php",
"chars": 383,
"preview": "<?php namespace October\\Contracts\\Element;\n\nuse October\\Rain\\Element\\Filter\\ScopeDefinition;\n\n/**\n * FilterElement\n *\n *"
},
{
"path": "contracts/Element/FormElement.php",
"chars": 693,
"preview": "<?php namespace October\\Contracts\\Element;\n\nuse October\\Rain\\Element\\Form\\FieldDefinition;\nuse October\\Rain\\Element\\Form"
},
{
"path": "contracts/Element/ListElement.php",
"chars": 382,
"preview": "<?php namespace October\\Contracts\\Element;\n\nuse October\\Rain\\Element\\Lists\\ColumnDefinition;\n\n/**\n * ListElement\n *\n * @"
},
{
"path": "contracts/Support/OctoberPackage.php",
"chars": 5085,
"preview": "<?php namespace October\\Contracts\\Support;\n\n/**\n * OctoberPackage\n *\n * @package october\\contracts\n * @author Alexey Bob"
},
{
"path": "contracts/Twig/CallsAnyMethod.php",
"chars": 187,
"preview": "<?php namespace October\\Contracts\\Twig;\n\n/**\n * CallsAnyMethod from Twig engine\n *\n * @package october\\contracts\n * @aut"
},
{
"path": "contracts/Twig/CallsMethods.php",
"chars": 335,
"preview": "<?php namespace October\\Contracts\\Twig;\n\n/**\n * CallsMethods from Twig engine\n *\n * @package october\\contracts\n * @autho"
},
{
"path": "globals/AjaxException.php",
"chars": 148,
"preview": "<?php\n\n/**\n * AjaxException\n *\n * @see October\\Rain\\Exception\\AjaxException\n */\nclass AjaxException extends October\\Rain"
},
{
"path": "globals/App.php",
"chars": 130,
"preview": "<?php\n\n/**\n * App\n *\n * @see \\Illuminate\\Contracts\\Foundation\\Application\n */\nclass App extends Illuminate\\Support\\Facad"
},
{
"path": "globals/ApplicationException.php",
"chars": 176,
"preview": "<?php\n\n/**\n * ApplicationException\n *\n * @see October\\Rain\\Exception\\ApplicationException\n */\nclass ApplicationException"
},
{
"path": "globals/Arr.php",
"chars": 105,
"preview": "<?php\n\n/**\n * Arr\n *\n * @see \\October\\Rain\\Support\\Arr\n */\nclass Arr extends October\\Rain\\Support\\Arr {}\n"
},
{
"path": "globals/Artisan.php",
"chars": 134,
"preview": "<?php\n\n/**\n * Artisan\n *\n * @see \\Illuminate\\Contracts\\Console\\Kernel\n */\nclass Artisan extends Illuminate\\Support\\Facad"
},
{
"path": "globals/Auth.php",
"chars": 124,
"preview": "<?php\n\n/**\n * Auth\n *\n * @see \\RainLab\\User\\Classes\\AuthManager\n */\nclass Auth extends October\\Rain\\Support\\Facades\\Auth"
},
{
"path": "globals/Backend.php",
"chars": 111,
"preview": "<?php\n\n/**\n * Backend\n *\n * @see \\Backend\\Helpers\\Backend\n */\nclass Backend extends Backend\\Facades\\Backend {}\n"
},
{
"path": "globals/BackendAuth.php",
"chars": 127,
"preview": "<?php\n\n/**\n * BackendAuth\n *\n * @see \\Backend\\Classes\\AuthManager\n */\nclass BackendAuth extends Backend\\Facades\\BackendA"
},
{
"path": "globals/BackendMenu.php",
"chars": 133,
"preview": "<?php\n\n/**\n * BackendMenu\n *\n * @see \\Backend\\Classes\\NavigationManager\n */\nclass BackendMenu extends Backend\\Facades\\Ba"
},
{
"path": "globals/BackendUi.php",
"chars": 91,
"preview": "<?php\n\n/**\n * @deprecated see \\Ui\n */\nclass BackendUi extends Backend\\Facades\\BackendUi {}\n"
},
{
"path": "globals/Block.php",
"chars": 125,
"preview": "<?php\n\n/**\n * Block\n *\n * @see \\October\\Rain\\Html\\BlockBuilder\n */\nclass Block extends October\\Rain\\Support\\Facades\\Bloc"
},
{
"path": "globals/Broadcast.php",
"chars": 146,
"preview": "<?php\n\n/**\n * Broadcast\n *\n * @see \\Illuminate\\Contracts\\Broadcasting\\Factory\n */\nclass Broadcast extends Illuminate\\Sup"
},
{
"path": "globals/Bus.php",
"chars": 122,
"preview": "<?php\n\n/**\n * Bus\n *\n * @see \\Illuminate\\Contracts\\Bus\\Dispatcher\n */\nclass Bus extends Illuminate\\Support\\Facades\\Bus {"
},
{
"path": "globals/Cache.php",
"chars": 159,
"preview": "<?php\n\n/**\n * Cache\n *\n * @see \\Illuminate\\Cache\\CacheManager\n * @see \\Illuminate\\Cache\\Repository\n */\nclass Cache exten"
},
{
"path": "globals/Cms.php",
"chars": 87,
"preview": "<?php\n\n/**\n * Cms\n *\n * @see \\Cms\\Helpers\\Cms\n */\nclass Cms extends Cms\\Facades\\Cms {}\n"
},
{
"path": "globals/Config.php",
"chars": 124,
"preview": "<?php\n\n/**\n * Config\n *\n * @see \\Illuminate\\Config\\Repository\n */\nclass Config extends Illuminate\\Support\\Facades\\Config"
},
{
"path": "globals/Cookie.php",
"chars": 123,
"preview": "<?php\n\n/**\n * Cookie\n *\n * @see \\Illuminate\\Cookie\\CookieJar\n */\nclass Cookie extends Illuminate\\Support\\Facades\\Cookie "
},
{
"path": "globals/Crypt.php",
"chars": 124,
"preview": "<?php\n\n/**\n * Crypt\n *\n * @see \\Illuminate\\Encryption\\Encrypter\n */\nclass Crypt extends Illuminate\\Support\\Facades\\Crypt"
},
{
"path": "globals/Currency.php",
"chars": 146,
"preview": "<?php\n\n/**\n * Currency\n *\n * @see \\Responsiv\\Currency\\Classes\\CurrencyManager\n */\nclass Currency extends October\\Rain\\Su"
},
{
"path": "globals/Date.php",
"chars": 119,
"preview": "<?php\n\n/**\n * Date\n *\n * @see Illuminate\\Support\\DateFactory\n */\nclass Date extends Illuminate\\Support\\Facades\\Date {}\n"
},
{
"path": "globals/Db.php",
"chars": 159,
"preview": "<?php\n\n/**\n * Db\n *\n * @see \\Illuminate\\Database\\DatabaseManager\n * @see \\Illuminate\\Database\\Connection\n */\nclass Db ex"
},
{
"path": "globals/DbDongle.php",
"chars": 132,
"preview": "<?php\n\n/**\n * DbDongle\n *\n * @see \\October\\Rain\\Database\\Dongle\n */\nclass DbDongle extends October\\Rain\\Support\\Facades\\"
},
{
"path": "globals/Event.php",
"chars": 125,
"preview": "<?php\n\n/**\n * Event\n *\n * @see \\October\\Rain\\Events\\Dispatcher\n */\nclass Event extends October\\Rain\\Support\\Facades\\Even"
},
{
"path": "globals/File.php",
"chars": 126,
"preview": "<?php\n\n/**\n * File\n *\n * @see \\October\\Rain\\Filesystem\\Filesystem\n */\nclass File extends October\\Rain\\Support\\Facades\\Fi"
},
{
"path": "globals/Flash.php",
"chars": 122,
"preview": "<?php\n\n/**\n * Flash\n *\n * @see \\October\\Rain\\Flash\\FlashBag\n */\nclass Flash extends October\\Rain\\Support\\Facades\\Flash {"
},
{
"path": "globals/ForbiddenException.php",
"chars": 168,
"preview": "<?php\n\n/**\n * ForbiddenException\n *\n * @see October\\Rain\\Exception\\ForbiddenException\n */\nclass ForbiddenException exten"
},
{
"path": "globals/Form.php",
"chars": 121,
"preview": "<?php\n\n/**\n * Form\n *\n * @see \\October\\Rain\\Html\\FormBuilder\n */\nclass Form extends October\\Rain\\Support\\Facades\\Form {}"
},
{
"path": "globals/Hash.php",
"chars": 120,
"preview": "<?php\n\n/**\n * Hash\n *\n * @see \\Illuminate\\Hashing\\HashManager\n */\nclass Hash extends Illuminate\\Support\\Facades\\Hash {}\n"
},
{
"path": "globals/Html.php",
"chars": 121,
"preview": "<?php\n\n/**\n * Html\n *\n * @see \\October\\Rain\\Html\\HtmlBuilder\n */\nclass Html extends October\\Rain\\Support\\Facades\\Html {}"
},
{
"path": "globals/Http.php",
"chars": 120,
"preview": "<?php\n\n/**\n * Http\n *\n * @see \\Illuminate\\Http\\Client\\Factory\n */\nclass Http extends Illuminate\\Support\\Facades\\Http {}\n"
},
{
"path": "globals/Ini.php",
"chars": 111,
"preview": "<?php\n\n/**\n * Ini\n *\n * @see \\October\\Rain\\Parse\\Ini\n */\nclass Ini extends October\\Rain\\Support\\Facades\\Ini {}\n"
},
{
"path": "globals/Input.php",
"chars": 117,
"preview": "<?php\n\n/**\n * Input\n *\n * @see Illuminate\\Http\\Request\n */\nclass Input extends October\\Rain\\Support\\Facades\\Input {}\n"
},
{
"path": "globals/Lang.php",
"chars": 123,
"preview": "<?php\n\n/**\n * Lang\n *\n * @see \\Illuminate\\Translation\\Translator\n */\nclass Lang extends Illuminate\\Support\\Facades\\Lang "
},
{
"path": "globals/Log.php",
"chars": 108,
"preview": "<?php\n\n/**\n * Log\n *\n * @see \\Illuminate\\Log\\Logger\n */\nclass Log extends Illuminate\\Support\\Facades\\Log {}\n"
},
{
"path": "globals/Mail.php",
"chars": 116,
"preview": "<?php\n\n/**\n * Mail\n *\n * @see \\October\\Rain\\Mail\\Mailer\n */\nclass Mail extends October\\Rain\\Support\\Facades\\Mail {}\n"
},
{
"path": "globals/Manifest.php",
"chars": 118,
"preview": "<?php\n\n/**\n * Manifest\n *\n * @see \\System\\Classes\\ManifestCache\n */\nclass Manifest extends System\\Facades\\Manifest {}\n"
},
{
"path": "globals/Markdown.php",
"chars": 131,
"preview": "<?php\n\n/**\n * Markdown\n *\n * @see \\October\\Rain\\Parse\\Markdown\n */\nclass Markdown extends October\\Rain\\Support\\Facades\\M"
},
{
"path": "globals/Model.php",
"chars": 114,
"preview": "<?php\n\n/**\n * Model\n *\n * @see October\\Rain\\Database\\Model\n */\nclass Model extends October\\Rain\\Database\\Model {}\n"
},
{
"path": "globals/NotFoundException.php",
"chars": 164,
"preview": "<?php\n\n/**\n * NotFoundException\n *\n * @see October\\Rain\\Exception\\NotFoundException\n */\nclass NotFoundException extends "
},
{
"path": "globals/Notification.php",
"chars": 153,
"preview": "<?php\n\n/**\n * Notification\n *\n * @see \\Illuminate\\Notifications\\ChannelManager\n */\nclass Notification extends Illuminate"
},
{
"path": "globals/Password.php",
"chars": 142,
"preview": "<?php\n\n/**\n * Password\n *\n * @see \\Illuminate\\Auth\\Passwords\\PasswordBroker\n */\nclass Password extends Illuminate\\Suppor"
},
{
"path": "globals/Queue.php",
"chars": 122,
"preview": "<?php\n\n/**\n * Queue\n *\n * @see \\Illuminate\\Queue\\QueueManager\n */\nclass Queue extends Illuminate\\Support\\Facades\\Queue {"
},
{
"path": "globals/Redirect.php",
"chars": 131,
"preview": "<?php\n\n/**\n * Redirect\n *\n * @see \\Illuminate\\Routing\\Redirector\n */\nclass Redirect extends Illuminate\\Support\\Facades\\R"
},
{
"path": "globals/Redis.php",
"chars": 122,
"preview": "<?php\n\n/**\n * Redis\n *\n * @see \\Illuminate\\Redis\\RedisManager\n */\nclass Redis extends Illuminate\\Support\\Facades\\Redis {"
},
{
"path": "globals/Request.php",
"chars": 122,
"preview": "<?php\n\n/**\n * Request\n *\n * @see \\Illuminate\\Http\\Request\n */\nclass Request extends Illuminate\\Support\\Facades\\Request {"
},
{
"path": "globals/Resizer.php",
"chars": 128,
"preview": "<?php\n\n/**\n * Resizer\n *\n * @see \\October\\Rain\\Resize\\Resizer\n */\nclass Resizer extends October\\Rain\\Support\\Facades\\Res"
},
{
"path": "globals/Response.php",
"chars": 146,
"preview": "<?php\n\n/**\n * Response\n *\n * @see \\Illuminate\\Contracts\\Routing\\ResponseFactory\n */\nclass Response extends Illuminate\\Su"
},
{
"path": "globals/Route.php",
"chars": 118,
"preview": "<?php\n\n/**\n * Route\n *\n * @see \\Illuminate\\Routing\\Router\n */\nclass Route extends Illuminate\\Support\\Facades\\Route {}\n"
},
{
"path": "globals/Schema.php",
"chars": 132,
"preview": "<?php\n\n/**\n * Schema\n *\n * @see \\Illuminate\\Database\\Schema\\Builder\n */\nclass Schema extends October\\Rain\\Support\\Facade"
},
{
"path": "globals/Seeder.php",
"chars": 134,
"preview": "<?php\n\n/**\n * Seeder\n *\n * @see October\\Rain\\Database\\Updates\\Seeder\n */\nclass Seeder extends October\\Rain\\Database\\Upda"
},
{
"path": "globals/Session.php",
"chars": 123,
"preview": "<?php\n\n/**\n * Session\n *\n * @see \\Illuminate\\Session\\Store\n */\nclass Session extends Illuminate\\Support\\Facades\\Session "
},
{
"path": "globals/Site.php",
"chars": 118,
"preview": "<?php\n\n/**\n * Site\n *\n * @see \\System\\Classes\\SiteManager\n */\nclass Site extends October\\Rain\\Support\\Facades\\Site {}\n"
},
{
"path": "globals/Storage.php",
"chars": 138,
"preview": "<?php\n\n/**\n * Storage\n *\n * @see \\Illuminate\\Filesystem\\FilesystemManager\n */\nclass Storage extends Illuminate\\Support\\F"
},
{
"path": "globals/Str.php",
"chars": 102,
"preview": "<?php\n\n/**\n * Str\n *\n * @see Illuminate\\Support\\Str\n */\nclass Str extends October\\Rain\\Support\\Str {}\n"
},
{
"path": "globals/System.php",
"chars": 105,
"preview": "<?php\n\n/**\n * System\n *\n * @see \\System\\Helpers\\System\n */\nclass System extends System\\Facades\\System {}\n"
},
{
"path": "globals/SystemException.php",
"chars": 156,
"preview": "<?php\n\n/**\n * SystemException\n *\n * @see October\\Rain\\Exception\\SystemException\n */\nclass SystemException extends Octobe"
},
{
"path": "globals/Twig.php",
"chars": 115,
"preview": "<?php\n\n/**\n * Twig\n *\n * @see \\October\\Rain\\Parse\\Twig\n */\nclass Twig extends October\\Rain\\Support\\Facades\\Twig {}\n"
},
{
"path": "globals/Ui.php",
"chars": 96,
"preview": "<?php\n\n/**\n * Ui\n *\n * @see \\System\\Classes\\UiManager\n */\nclass Ui extends System\\Facades\\Ui {}\n"
},
{
"path": "globals/Url.php",
"chars": 120,
"preview": "<?php\n\n/**\n * Url\n *\n * @see \\Illuminate\\Routing\\UrlGenerator\n */\nclass Url extends October\\Rain\\Support\\Facades\\Url {}\n"
},
{
"path": "globals/ValidationException.php",
"chars": 172,
"preview": "<?php\n\n/**\n * ValidationException\n *\n * @see October\\Rain\\Exception\\ValidationException\n */\nclass ValidationException ex"
},
{
"path": "globals/Validator.php",
"chars": 138,
"preview": "<?php\n\n/**\n * Validator\n *\n * @see \\October\\Rain\\Validation\\Factory\n */\nclass Validator extends October\\Rain\\Support\\Fac"
},
{
"path": "globals/View.php",
"chars": 113,
"preview": "<?php\n\n/**\n * View\n *\n * @see \\Illuminate\\View\\Factory\n */\nclass View extends Illuminate\\Support\\Facades\\View {}\n"
},
{
"path": "globals/Vite.php",
"chars": 116,
"preview": "<?php\n\n/**\n * Vite\n *\n * @see \\Illuminate\\Foundation\\Vite\n */\nclass Vite extends Illuminate\\Support\\Facades\\Vite {}\n"
},
{
"path": "globals/Yaml.php",
"chars": 115,
"preview": "<?php\n\n/**\n * Yaml\n *\n * @see \\October\\Rain\\Parse\\Yaml\n */\nclass Yaml extends October\\Rain\\Support\\Facades\\Yaml {}\n"
},
{
"path": "init/autoloader.php",
"chars": 213,
"preview": "<?php\n\nuse October\\Rain\\Composer\\ClassLoader;\n\nClassLoader::configure(dirname(__DIR__, 4))\n ->withNamespace('App\\\\', "
},
{
"path": "init/functions.php",
"chars": 21986,
"preview": "<?php\n\nuse October\\Rain\\Support\\Arr;\nuse October\\Rain\\Support\\Str;\nuse October\\Rain\\Support\\Collection;\n\nif (!function_e"
},
{
"path": "init/init.php",
"chars": 116,
"preview": "<?php\n\nrequire __DIR__ . '/autoloader.php';\nrequire __DIR__ . '/functions.php';\nrequire __DIR__ . '/polyfills.php';\n"
},
{
"path": "init/polyfills.php",
"chars": 5590,
"preview": "<?php\n\n/**\n * URL constants as defined in the PHP Manual under \"Constants usable with\n * http_build_url()\".\n *\n * @see h"
},
{
"path": "init.php",
"chars": 131,
"preview": "<?php\n\nrequire __DIR__ . '/init/autoloader.php';\nrequire __DIR__ . '/init/functions.php';\nrequire __DIR__ . '/init/polyf"
},
{
"path": "phpbench.json",
"chars": 115,
"preview": "{\n \"$schema\":\"./vendor/phpbench/phpbench/phpbench.schema.json\",\n \"runner.bootstrap\": \"vendor/autoload.php\"\n}\n"
},
{
"path": "phpcs.xml",
"chars": 1506,
"preview": "<?xml version=\"1.0\"?>\n<ruleset name=\"October CMS\">\n <description>The coding standard for October CMS.</description>\n "
},
{
"path": "phpunit.xml",
"chars": 493,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<phpunit backupGlobals=\"false\"\n backupStaticAttributes=\"false\"\n c"
},
{
"path": "src/Assetic/Asset/AssetCache.php",
"chars": 4991,
"preview": "<?php namespace October\\Rain\\Assetic\\Asset;\n\nuse October\\Rain\\Assetic\\Cache\\CacheInterface;\nuse October\\Rain\\Assetic\\Fil"
},
{
"path": "src/Assetic/Asset/AssetCollection.php",
"chars": 7341,
"preview": "<?php namespace October\\Rain\\Assetic\\Asset;\n\nuse October\\Rain\\Assetic\\Asset\\Iterator\\AssetCollectionFilterIterator;\nuse "
},
{
"path": "src/Assetic/Asset/AssetCollectionInterface.php",
"chars": 1538,
"preview": "<?php namespace October\\Rain\\Assetic\\Asset;\n\n/**\n * AssetCollectionInterface is an asset collection.\n *\n * @author Kris "
},
{
"path": "src/Assetic/Asset/AssetInterface.php",
"chars": 4199,
"preview": "<?php namespace October\\Rain\\Assetic\\Asset;\n\nuse October\\Rain\\Assetic\\Filter\\FilterInterface;\n\n/**\n * AssetInterface is "
},
{
"path": "src/Assetic/Asset/BaseAsset.php",
"chars": 4751,
"preview": "<?php namespace October\\Rain\\Assetic\\Asset;\n\nuse October\\Rain\\Assetic\\Filter\\FilterCollection;\nuse October\\Rain\\Assetic\\"
},
{
"path": "src/Assetic/Asset/FileAsset.php",
"chars": 2424,
"preview": "<?php namespace October\\Rain\\Assetic\\Asset;\n\nuse File;\nuse October\\Rain\\Assetic\\Filter\\FilterInterface;\nuse October\\Rain"
},
{
"path": "src/Assetic/Asset/GlobAsset.php",
"chars": 2921,
"preview": "<?php namespace October\\Rain\\Assetic\\Asset;\n\nuse October\\Rain\\Assetic\\Filter\\FilterInterface;\nuse October\\Rain\\Assetic\\U"
},
{
"path": "src/Assetic/Asset/HttpAsset.php",
"chars": 2452,
"preview": "<?php namespace October\\Rain\\Assetic\\Asset;\n\nuse October\\Rain\\Assetic\\Filter\\FilterInterface;\nuse October\\Rain\\Assetic\\U"
},
{
"path": "src/Assetic/Asset/Iterator/AssetCollectionFilterIterator.php",
"chars": 2215,
"preview": "<?php namespace October\\Rain\\Assetic\\Asset\\Iterator;\n\nuse RecursiveFilterIterator;\n\n/**\n * AssetCollectionFilterIterator"
},
{
"path": "src/Assetic/Asset/Iterator/AssetCollectionIterator.php",
"chars": 3350,
"preview": "<?php namespace October\\Rain\\Assetic\\Asset\\Iterator;\n\nuse October\\Rain\\Assetic\\Asset\\AssetCollectionInterface;\nuse Recur"
},
{
"path": "src/Assetic/Asset/StringAsset.php",
"chars": 1359,
"preview": "<?php namespace October\\Rain\\Assetic\\Asset;\n\nuse October\\Rain\\Assetic\\Filter\\FilterInterface;\n\n/**\n * StringAsset repres"
},
{
"path": "src/Assetic/AssetManager.php",
"chars": 1923,
"preview": "<?php namespace October\\Rain\\Assetic;\n\nuse October\\Rain\\Assetic\\Asset\\AssetInterface;\nuse InvalidArgumentException;\n\n/**"
},
{
"path": "src/Assetic/AssetWriter.php",
"chars": 2274,
"preview": "<?php namespace October\\Rain\\Assetic;\n\nuse October\\Rain\\Assetic\\Asset\\AssetInterface;\nuse October\\Rain\\Assetic\\Util\\VarU"
},
{
"path": "src/Assetic/AsseticServiceProvider.php",
"chars": 850,
"preview": "<?php namespace October\\Rain\\Assetic;\n\nuse Illuminate\\Support\\ServiceProvider;\nuse Illuminate\\Contracts\\Support\\Deferrab"
},
{
"path": "src/Assetic/Cache/CacheInterface.php",
"chars": 911,
"preview": "<?php namespace October\\Rain\\Assetic\\Cache;\n\n/**\n * CacheInterface interface for a cache backend.\n *\n * @author Kris Wal"
},
{
"path": "src/Assetic/Cache/FilesystemCache.php",
"chars": 1652,
"preview": "<?php namespace October\\Rain\\Assetic\\Cache;\n\nuse File;\nuse October\\Rain\\Assetic\\Cache\\CacheInterface;\nuse RuntimeExcepti"
},
{
"path": "src/Assetic/Combiner.php",
"chars": 5921,
"preview": "<?php namespace October\\Rain\\Assetic;\n\nuse File;\nuse October\\Rain\\Assetic\\Asset\\FileAsset;\nuse October\\Rain\\Assetic\\Asse"
},
{
"path": "src/Assetic/Factory/AssetFactory.php",
"chars": 11059,
"preview": "<?php namespace October\\Rain\\Assetic\\Factory;\n\nuse October\\Rain\\Assetic\\Asset\\AssetCollection;\nuse October\\Rain\\Assetic\\"
},
{
"path": "src/Assetic/Filter/BaseCssFilter.php",
"chars": 1155,
"preview": "<?php namespace October\\Rain\\Assetic\\Filter;\n\nuse October\\Rain\\Assetic\\Util\\CssUtils;\n\n/**\n * BaseCssFilter is an abstra"
},
{
"path": "src/Assetic/Filter/CssImportFilter.php",
"chars": 5820,
"preview": "<?php namespace October\\Rain\\Assetic\\Filter;\n\nuse October\\Rain\\Assetic\\Filter\\HashableInterface;\nuse October\\Rain\\Asseti"
},
{
"path": "src/Assetic/Filter/CssMinFilter.php",
"chars": 1443,
"preview": "<?php namespace October\\Rain\\Assetic\\Filter;\n\nuse October\\Rain\\Assetic\\Asset\\AssetInterface;\n\n/**\n * CssMinFilter filter"
},
{
"path": "src/Assetic/Filter/CssRewriteFilter.php",
"chars": 3585,
"preview": "<?php namespace October\\Rain\\Assetic\\Filter;\n\nuse October\\Rain\\Assetic\\Asset\\AssetInterface;\n\n/**\n * CssRewriteFilter fi"
},
{
"path": "src/Assetic/Filter/DependencyExtractorInterface.php",
"chars": 713,
"preview": "<?php namespace October\\Rain\\Assetic\\Filter;\n\nuse October\\Rain\\Assetic\\Asset\\AssetInterface;\nuse October\\Rain\\Assetic\\Fa"
},
{
"path": "src/Assetic/Filter/FilterCollection.php",
"chars": 1959,
"preview": "<?php namespace October\\Rain\\Assetic\\Filter;\n\nuse October\\Rain\\Assetic\\Asset\\AssetInterface;\nuse Traversable;\n\n/**\n * Fi"
},
{
"path": "src/Assetic/Filter/FilterInterface.php",
"chars": 597,
"preview": "<?php namespace October\\Rain\\Assetic\\Filter;\n\nuse October\\Rain\\Assetic\\Asset\\AssetInterface;\n\n/**\n * A filter manipulate"
},
{
"path": "src/Assetic/Filter/HashableInterface.php",
"chars": 304,
"preview": "<?php namespace October\\Rain\\Assetic\\Filter;\n\n/**\n * A filter can implement a hash function\n *\n * @author Francisco Faci"
},
{
"path": "src/Assetic/Filter/JSMinFilter.php",
"chars": 993,
"preview": "<?php namespace October\\Rain\\Assetic\\Filter;\n\n\nuse JSMin;\nuse October\\Rain\\Assetic\\Asset\\AssetInterface;\n\n/**\n * JSMinFi"
},
{
"path": "src/Assetic/Filter/JSqueezeFilter.php",
"chars": 2101,
"preview": "<?php namespace October\\Rain\\Assetic\\Filter;\n\n\nuse October\\Rain\\Assetic\\Asset\\AssetInterface;\n\n/**\n * JSqueeze filter.\n "
},
{
"path": "src/Assetic/Filter/JavascriptImporter.php",
"chars": 4681,
"preview": "<?php namespace October\\Rain\\Assetic\\Filter;\n\nuse File;\nuse October\\Rain\\Assetic\\Asset\\AssetInterface;\nuse October\\Rain\\"
},
{
"path": "src/Assetic/Filter/LessCompiler.php",
"chars": 2878,
"preview": "<?php namespace October\\Rain\\Assetic\\Filter;\n\nuse October\\Rain\\Assetic\\Asset\\AssetInterface;\nuse October\\Rain\\Assetic\\Fa"
},
{
"path": "src/Assetic/Filter/LessphpFilter.php",
"chars": 3942,
"preview": "<?php namespace October\\Rain\\Assetic\\Filter;\n\n\nuse October\\Rain\\Assetic\\Asset\\AssetInterface;\nuse October\\Rain\\Assetic\\F"
},
{
"path": "src/Assetic/Filter/ScssCompiler.php",
"chars": 2316,
"preview": "<?php namespace October\\Rain\\Assetic\\Filter;\n\nuse Event;\nuse October\\Rain\\Assetic\\Asset\\AssetInterface;\nuse October\\Rain"
},
{
"path": "src/Assetic/Filter/ScssphpFilter.php",
"chars": 5127,
"preview": "<?php namespace October\\Rain\\Assetic\\Filter;\n\nuse Url;\nuse File;\nuse Config;\nuse Storage;\nuse October\\Rain\\Assetic\\Asset"
},
{
"path": "src/Assetic/Filter/StylesheetMinify.php",
"chars": 2299,
"preview": "<?php namespace October\\Rain\\Assetic\\Filter;\n\nuse October\\Rain\\Assetic\\Asset\\AssetInterface;\nuse October\\Rain\\Assetic\\Fi"
},
{
"path": "src/Assetic/FilterManager.php",
"chars": 1481,
"preview": "<?php namespace October\\Rain\\Assetic;\n\nuse October\\Rain\\Assetic\\Filter\\FilterInterface;\nuse InvalidArgumentException;\n\n/"
},
{
"path": "src/Assetic/README.md",
"chars": 872,
"preview": "# Rain Assetic Resources\n\nAssetic is a simple library that lets you compile and combine basic LESS and SCSS files.\n\n## B"
},
{
"path": "src/Assetic/Traits/HasDeepHasher.php",
"chars": 1852,
"preview": "<?php namespace October\\Rain\\Assetic\\Traits;\n\nuse File;\nuse October\\Rain\\Assetic\\Factory\\AssetFactory;\n\n/**\n * HasDeepHa"
},
{
"path": "src/Assetic/Util/CssUtils.php",
"chars": 4051,
"preview": "<?php namespace October\\Rain\\Assetic\\Util;\n\n/**\n * CSS Utils.\n *\n * @author Kris Wallsmith <kris.wallsmith@gmail.com>\n *"
},
{
"path": "src/Assetic/Util/LessUtils.php",
"chars": 495,
"preview": "<?php namespace October\\Rain\\Assetic\\Util;\n\n\n/**\n * Less Utils.\n *\n * @author Kris Wallsmith <kris.wallsmith@gmail.com>\n"
},
{
"path": "src/Assetic/Util/SassUtils.php",
"chars": 494,
"preview": "<?php namespace October\\Rain\\Assetic\\Util;\n\n/*\n * This file is part of the Assetic package, an OpenSky project.\n *\n * (c"
},
{
"path": "src/Assetic/Util/VarUtils.php",
"chars": 1906,
"preview": "<?php namespace October\\Rain\\Assetic\\Util;\n\n/**\n * Variable utilities.\n *\n * @author Johannes M. Schmitt <schmittjoh@gma"
},
{
"path": "src/Auth/AuthException.php",
"chars": 2372,
"preview": "<?php namespace October\\Rain\\Auth;\n\nuse Config;\nuse October\\Rain\\Exception\\ApplicationException;\nuse Exception;\n\n/**\n * "
},
{
"path": "src/Auth/Concerns/HasGuard.php",
"chars": 2958,
"preview": "<?php namespace October\\Rain\\Auth\\Concerns;\n\nuse Illuminate\\Contracts\\Auth\\Authenticatable;\n\n/**\n * HasGuard defines all"
},
{
"path": "src/Auth/Concerns/HasImpersonation.php",
"chars": 4734,
"preview": "<?php namespace October\\Rain\\Auth\\Concerns;\n\nuse Session;\nuse Illuminate\\Contracts\\Auth\\Authenticatable;\n\n/**\n * HasImpe"
},
{
"path": "src/Auth/Concerns/HasProviderProxy.php",
"chars": 522,
"preview": "<?php namespace October\\Rain\\Auth\\Concerns;\n\n/**\n * HasProviderProxy provides proxy methods to emulate Laravel's auth pr"
},
{
"path": "src/Auth/Concerns/HasSession.php",
"chars": 1708,
"preview": "<?php namespace October\\Rain\\Auth\\Concerns;\n\nuse Cookie;\nuse Session;\n\n/**\n * HasSession\n *\n * @package october\\auth\n * "
},
{
"path": "src/Auth/Concerns/HasStatefulGuard.php",
"chars": 3672,
"preview": "<?php namespace October\\Rain\\Auth\\Concerns;\n\nuse Cookie;\nuse Session;\nuse Illuminate\\Contracts\\Auth\\Authenticatable;\nuse"
},
{
"path": "src/Auth/Concerns/HasThrottle.php",
"chars": 2461,
"preview": "<?php namespace October\\Rain\\Auth\\Concerns;\n\nuse October\\Rain\\Auth\\AuthException;\n\n/**\n * HasThrottle\n *\n * @package oct"
},
{
"path": "src/Auth/Concerns/HasUser.php",
"chars": 4690,
"preview": "<?php namespace October\\Rain\\Auth\\Concerns;\n\nuse Cookie;\nuse Session;\nuse Illuminate\\Contracts\\Auth\\Authenticatable;\nuse"
},
{
"path": "src/Auth/Manager.php",
"chars": 5533,
"preview": "<?php namespace October\\Rain\\Auth;\n\nuse Request;\nuse Illuminate\\Contracts\\Auth\\StatefulGuard;\n\n/**\n * Manager for authen"
},
{
"path": "src/Auth/Migrations/2013_10_01_000001_Db_Users.php",
"chars": 1196,
"preview": "<?php\n\nuse Illuminate\\Database\\Schema\\Blueprint;\nuse Illuminate\\Database\\Migrations\\Migration;\n\nreturn new class extends"
},
{
"path": "src/Auth/Migrations/2013_10_01_000002_Db_Groups.php",
"chars": 548,
"preview": "<?php\n\nuse Illuminate\\Database\\Schema\\Blueprint;\nuse Illuminate\\Database\\Migrations\\Migration;\n\nreturn new class extends"
},
{
"path": "src/Auth/Migrations/2013_10_01_000003_Db_Users_Groups.php",
"chars": 491,
"preview": "<?php\n\nuse Illuminate\\Database\\Schema\\Blueprint;\nuse Illuminate\\Database\\Migrations\\Migration;\n\nreturn new class extends"
},
{
"path": "src/Auth/Migrations/2013_10_01_000004_Db_Preferences.php",
"chars": 684,
"preview": "<?php\n\nuse Illuminate\\Database\\Schema\\Blueprint;\nuse Illuminate\\Database\\Migrations\\Migration;\n\nreturn new class extends"
},
{
"path": "src/Auth/Migrations/2013_10_01_000005_Db_Throttle.php",
"chars": 839,
"preview": "<?php\n\nuse Illuminate\\Database\\Schema\\Blueprint;\nuse Illuminate\\Database\\Migrations\\Migration;\n\nreturn new class extends"
},
{
"path": "src/Auth/Migrations/2017_10_01_000006_Db_Roles.php",
"chars": 489,
"preview": "<?php\n\nuse Illuminate\\Database\\Schema\\Blueprint;\nuse Illuminate\\Database\\Migrations\\Migration;\n\nreturn new class extends"
},
{
"path": "src/Auth/Models/Group.php",
"chars": 892,
"preview": "<?php namespace October\\Rain\\Auth\\Models;\n\nuse October\\Rain\\Database\\Model;\n\n/**\n * Group model\n */\nclass Group extends "
},
{
"path": "src/Auth/Models/Preferences.php",
"chars": 5277,
"preview": "<?php namespace October\\Rain\\Auth\\Models;\n\nuse October\\Rain\\Database\\Model;\nuse October\\Rain\\Auth\\AuthException;\nuse Oct"
},
{
"path": "src/Auth/Models/Role.php",
"chars": 6891,
"preview": "<?php namespace October\\Rain\\Auth\\Models;\n\nuse InvalidArgumentException;\nuse October\\Rain\\Database\\Model;\n\n/**\n * Role m"
},
{
"path": "src/Auth/Models/Throttle.php",
"chars": 6032,
"preview": "<?php namespace October\\Rain\\Auth\\Models;\n\nuse Carbon\\Carbon;\nuse October\\Rain\\Auth\\AuthException;\nuse October\\Rain\\Data"
},
{
"path": "src/Auth/Models/User.php",
"chars": 20357,
"preview": "<?php namespace October\\Rain\\Auth\\Models;\n\nuse Str;\nuse Hash;\nuse October\\Rain\\Database\\Model;\nuse Illuminate\\Contracts\\"
},
{
"path": "src/Composer/ClassLoader.php",
"chars": 7905,
"preview": "<?php namespace October\\Rain\\Composer;\n\nuse Exception;\nuse Throwable;\n\n/**\n * ClassLoader is a custom autoloader used by"
},
{
"path": "src/Composer/ComposerManager.php",
"chars": 10021,
"preview": "<?php namespace October\\Rain\\Composer;\n\nuse App;\nuse Config;\nuse Composer\\Factory;\nuse Composer\\Composer;\nuse Composer\\I"
},
{
"path": "src/Composer/Concerns/HasAssertions.php",
"chars": 4008,
"preview": "<?php namespace October\\Rain\\Composer\\Concerns;\n\nuse Composer\\Util\\Platform;\nuse RecursiveIteratorIterator;\nuse Recursiv"
},
{
"path": "src/Composer/Concerns/HasAutoloader.php",
"chars": 4575,
"preview": "<?php namespace October\\Rain\\Composer\\Concerns;\n\n/**\n * HasAutoloader for composer\n *\n * This trait manages composer pac"
},
{
"path": "src/Composer/Concerns/HasOctoberCommands.php",
"chars": 504,
"preview": "<?php namespace October\\Rain\\Composer\\Concerns;\n\n/**\n * HasOctoberCommands for composer\n *\n * @package october\\composer\n"
},
{
"path": "src/Composer/Concerns/HasOutput.php",
"chars": 1288,
"preview": "<?php namespace October\\Rain\\Composer\\Concerns;\n\nuse Composer\\IO\\NullIO;\nuse Composer\\IO\\BufferIO;\nuse Composer\\IO\\Conso"
},
{
"path": "src/Composer/Concerns/HasRequirements.php",
"chars": 2675,
"preview": "<?php namespace October\\Rain\\Composer\\Concerns;\n\nuse Composer\\Json\\JsonFile;\nuse Composer\\Json\\JsonManipulator;\n\n/**\n * "
},
{
"path": "src/Composer/resources/file_get_contents.php",
"chars": 282,
"preview": "<?php\n\n/**\n * This prevents file_get_contents from throwing an exception.\n */\nnamespace Composer\\Repository\n{\n /**\n "
},
{
"path": "src/Composer/resources/putenv.php",
"chars": 310,
"preview": "<?php\n\n/**\n * This file registers a null functions for specific packages where putenv()\n * is disabled since it is not n"
},
{
"path": "src/Config/FileLoader.php",
"chars": 1606,
"preview": "<?php namespace October\\Rain\\Config;\n\nuse Symfony\\Component\\Finder\\Finder;\nuse SplFileInfo;\n\n/**\n * FileLoader loads pac"
},
{
"path": "src/Config/README.md",
"chars": 936,
"preview": "Config\n=======\n\nAn extension of illuminate\\config\n\nModules and plugins can have config files in the /config directory. P"
},
{
"path": "src/Config/Repository.php",
"chars": 2714,
"preview": "<?php namespace October\\Rain\\Config;\n\nuse Illuminate\\Config\\Repository as RepositoryBase;\nuse Arr;\n\n/**\n * Repository fo"
},
{
"path": "src/Database/Attach/File.php",
"chars": 28293,
"preview": "<?php namespace October\\Rain\\Database\\Attach;\n\nuse Log;\nuse Http;\nuse Cache;\nuse Storage;\nuse Response;\nuse File as File"
},
{
"path": "src/Database/Attach/FileException.php",
"chars": 205,
"preview": "<?php namespace October\\Rain\\Database\\Attach;\n\nuse Exception;\n\n/**\n * File Exception\n *\n * @package october\\database\n * "
},
{
"path": "src/Database/Builder.php",
"chars": 8853,
"preview": "<?php namespace October\\Rain\\Database;\n\nuse Illuminate\\Pagination\\Paginator;\nuse Illuminate\\Database\\Eloquent\\Builder as"
},
{
"path": "src/Database/Collection.php",
"chars": 435,
"preview": "<?php namespace October\\Rain\\Database;\n\nuse Illuminate\\Database\\Eloquent\\Collection as CollectionBase;\n\n/**\n * Proxy cla"
},
{
"path": "src/Database/Concerns/HasAttributes.php",
"chars": 9054,
"preview": "<?php namespace October\\Rain\\Database\\Concerns;\n\nuse October\\Rain\\Support\\Str;\nuse Exception;\n\n/**\n * HasAttributes conc"
},
{
"path": "src/Database/Concerns/HasEagerLoadAttachRelation.php",
"chars": 2520,
"preview": "<?php namespace October\\Rain\\Database\\Concerns;\n\nuse Closure;\n\n/**\n * HasEagerLoadAttachRelation eagerly loads all attac"
},
{
"path": "src/Database/Concerns/HasEvents.php",
"chars": 11492,
"preview": "<?php namespace October\\Rain\\Database\\Concerns;\n\n/**\n * HasEvents concern for a model\n *\n * @package october\\database\n *"
},
{
"path": "src/Database/Concerns/HasJsonable.php",
"chars": 2058,
"preview": "<?php namespace October\\Rain\\Database\\Concerns;\n\n/**\n * HasJsonable concern for a model\n *\n * @package october\\database\n"
},
{
"path": "src/Database/Concerns/HasNicerPagination.php",
"chars": 2354,
"preview": "<?php namespace October\\Rain\\Database\\Concerns;\n\n/**\n * HasNicerPagination for a query builder\n */\ntrait HasNicerPaginat"
},
{
"path": "src/Database/Concerns/HasRelationships.php",
"chars": 32665,
"preview": "<?php namespace October\\Rain\\Database\\Concerns;\n\nuse October\\Rain\\Support\\Arr;\nuse October\\Rain\\Support\\Str;\nuse October"
},
{
"path": "src/Database/Concerns/HasReplication.php",
"chars": 2054,
"preview": "<?php namespace October\\Rain\\Database\\Concerns;\n\nuse App;\n\n/**\n * HasReplication for a model\n *\n * @see October\\Rain\\Dat"
},
{
"path": "src/Database/Connections/Connection.php",
"chars": 1358,
"preview": "<?php namespace October\\Rain\\Database\\Connections;\n\nuse October\\Rain\\Database\\QueryBuilder;\nuse Illuminate\\Database\\Conn"
},
{
"path": "src/Database/Connections/ExtendsConnection.php",
"chars": 1416,
"preview": "<?php namespace October\\Rain\\Database\\Connections;\n\nuse October\\Rain\\Database\\QueryBuilder;\n\n/**\n * ExtendsConnection re"
},
{
"path": "src/Database/Connections/MariaDbConnection.php",
"chars": 302,
"preview": "<?php namespace October\\Rain\\Database\\Connections;\n\nuse Illuminate\\Database\\MariaDbConnection as MariaDbConnectionBase;\n"
},
{
"path": "src/Database/Connections/MySqlConnection.php",
"chars": 292,
"preview": "<?php namespace October\\Rain\\Database\\Connections;\n\nuse Illuminate\\Database\\MySqlConnection as MySqlConnectionBase;\n\n/**"
},
{
"path": "src/Database/Connections/PostgresConnection.php",
"chars": 307,
"preview": "<?php namespace October\\Rain\\Database\\Connections;\n\nuse Illuminate\\Database\\PostgresConnection as PostgresConnectionBase"
},
{
"path": "src/Database/Connections/SQLiteConnection.php",
"chars": 297,
"preview": "<?php namespace October\\Rain\\Database\\Connections;\n\nuse Illuminate\\Database\\SQLiteConnection as SQLiteConnectionBase;\n\n/"
},
{
"path": "src/Database/Connections/SqlServerConnection.php",
"chars": 316,
"preview": "<?php namespace October\\Rain\\Database\\Connections;\n\nuse Illuminate\\Database\\SqlServerConnection as SqlServerConnectionBa"
},
{
"path": "src/Database/Connectors/ConnectionFactory.php",
"chars": 2568,
"preview": "<?php namespace October\\Rain\\Database\\Connectors;\n\nuse Illuminate\\Support\\Arr;\nuse Illuminate\\Database\\Connectors\\Connec"
},
{
"path": "src/Database/DatabaseServiceProvider.php",
"chars": 3642,
"preview": "<?php namespace October\\Rain\\Database;\n\nuse October\\Rain\\Database\\Updater;\nuse October\\Rain\\Database\\Schema\\Blueprint;\nu"
},
{
"path": "src/Database/Dongle.php",
"chars": 10399,
"preview": "<?php namespace October\\Rain\\Database;\n\n/**\n * Dongle driver for database that uses regex to convert MySQL to various ot"
},
{
"path": "src/Database/ExpandoModel.php",
"chars": 2664,
"preview": "<?php namespace October\\Rain\\Database;\n\n/**\n * ExpandoModel treats all attributes as dynamic that are serialized to a si"
},
{
"path": "src/Database/Factories/Factory.php",
"chars": 199,
"preview": "<?php namespace October\\Rain\\Database\\Factories;\n\nuse Illuminate\\Database\\Eloquent\\Factories\\Factory as FactoryBase;\n\n/*"
},
{
"path": "src/Database/Factories/HasFactory.php",
"chars": 1476,
"preview": "<?php namespace October\\Rain\\Database\\Factories;\n\n/**\n * HasFactory implements factory support for a model\n *\n * @packag"
},
{
"path": "src/Database/Migrations/2013_10_01_000001_Db_Deferred_Bindings.php",
"chars": 804,
"preview": "<?php\n\nuse October\\Rain\\Database\\Schema\\Blueprint;\nuse October\\Rain\\Database\\Updates\\Migration;\n\nreturn new class extend"
},
{
"path": "src/Database/Migrations/2013_10_01_000002_Db_Files.php",
"chars": 1044,
"preview": "<?php\n\nuse October\\Rain\\Database\\Schema\\Blueprint;\nuse October\\Rain\\Database\\Updates\\Migration;\n\nreturn new class extend"
},
{
"path": "src/Database/Migrations/2015_10_01_000003_Db_Revisions.php",
"chars": 854,
"preview": "<?php\n\nuse October\\Rain\\Database\\Schema\\Blueprint;\nuse October\\Rain\\Database\\Updates\\Migration;\n\nreturn new class extend"
},
{
"path": "src/Database/Migrations/2026_10_01_000004_Db_Translate_Attributes.php",
"chars": 920,
"preview": "<?php\n\nuse October\\Rain\\Database\\Schema\\Blueprint;\nuse October\\Rain\\Database\\Updates\\Migration;\n\nreturn new class extend"
},
{
"path": "src/Database/Model.php",
"chars": 13197,
"preview": "<?php namespace October\\Rain\\Database;\n\nuse Date;\nuse October\\Rain\\Support\\Arr;\nuse Illuminate\\Database\\Eloquent\\Model a"
},
{
"path": "src/Database/ModelBehavior.php",
"chars": 546,
"preview": "<?php namespace October\\Rain\\Database;\n\nuse October\\Rain\\Extension\\ExtensionBase;\n\n/**\n * Base class for model behaviors"
},
{
"path": "src/Database/ModelException.php",
"chars": 756,
"preview": "<?php namespace October\\Rain\\Database;\n\nuse October\\Rain\\Exception\\ValidationException;\n\n/**\n * ModelException is used w"
},
{
"path": "src/Database/Models/DeferredBinding.php",
"chars": 6434,
"preview": "<?php namespace October\\Rain\\Database\\Models;\n\nuse Event;\nuse Carbon\\Carbon;\nuse Illuminate\\Support\\Arr;\nuse October\\Rai"
}
]
// ... and 355 more files (download for full content)
About this extraction
This page contains the full source code of the octobercms/library GitHub repository, extracted and formatted as plain text for AI agents and large language models (LLMs). The extraction includes 555 files (1.7 MB), approximately 430.5k tokens, and a symbol index with 3240 extracted functions, classes, methods, constants, and types. Use this with OpenClaw, Claude, ChatGPT, Cursor, Windsurf, or any other AI tool that accepts text input. You can copy the full output to your clipboard or download it as a .txt file.
Extracted by GitExtract — free GitHub repo to text converter for AI. Built by Nikandr Surkov.