From a8f25a93e310dd90b0e8cb85443de8a8d9e7f9aa Mon Sep 17 00:00:00 2001 From: Nearata Date: Fri, 23 Apr 2021 16:41:39 +0200 Subject: [PATCH 1/5] broken links --- docs/admin.md | 2 +- docs/extend/authorization.md | 4 ++-- docs/extend/i18n.md | 12 ++++++------ docs/extend/interactive-components.md | 4 ++-- docs/extend/search.md | 2 +- docs/extend/testing.md | 2 +- docs/extend/update-b12.md | 2 +- docs/extend/update-b13.md | 2 +- 8 files changed, 15 insertions(+), 15 deletions(-) diff --git a/docs/admin.md b/docs/admin.md index 32f6ae515..f5f28d520 100644 --- a/docs/admin.md +++ b/docs/admin.md @@ -1,5 +1,5 @@ # Admin Dashboard The Flarum Admin Dashboard is a user-friendly interface for managing your forum. -It is only available to users in the "Admin" [group](permissions.md). +It is only available to users in the "Admin" [group](/extend/permissions.md). To access the Admin dashboard, Click on your **Name** at the at the top right of the screen, and select **Administration**. diff --git a/docs/extend/authorization.md b/docs/extend/authorization.md index ac0bf2370..3106ef597 100644 --- a/docs/extend/authorization.md +++ b/docs/extend/authorization.md @@ -18,7 +18,7 @@ Each of these is determined by unique criteria: in some cases a flag is sufficie ### How It Works -Authorization queries are made with 3 parameters, with logic contained in [`Flarum\User\Gate`](https://api.docs.flarum.org/php/master/flarum/user/gate): +Authorization queries are made with 3 parameters, with logic contained in [`Flarum\User\Gate`](https://api.docs.flarum.org/php/master/flarum/user/access/gate): 1. The actor: the user attempting to perform the action 2. The ability: a string representing the action the actor is attempting @@ -277,7 +277,7 @@ Think of calling `whereVisibleTo` with a custom ability as a way for extensions ### Custom Visibility Scoper Examples -Let's take a look at some examples from [Flarum Tags](https://github.com/flarum/tags/blob/master/src/Access/TagPolicy). +Let's take a look at some examples from [Flarum Tags](https://github.com/flarum/tags/blob/master/src/Access). First, a scoper for the `Tag` model with the `view` ability: diff --git a/docs/extend/i18n.md b/docs/extend/i18n.md index 424e6c34c..1a41f0964 100644 --- a/docs/extend/i18n.md +++ b/docs/extend/i18n.md @@ -125,7 +125,7 @@ This shows the basic translation method, with no bells or whistles attached. Bel ## Including Variables -You can include variables in translations. As an example, let's look at the code that creates the first item in Flarum's [search results dropdown](https://github.com/flarum/core/blob/master/js/forum/src/components/DiscussionsSearchSource.js). This button quotes the search query entered by the user — information that is passed to the translator along with the translation key, as an additional parameter: +You can include variables in translations. As an example, let's look at the code that creates the first item in Flarum's [search results dropdown](https://github.com/flarum/core/blob/master/js/src/forum/components/DiscussionsSearchSource.js). This button quotes the search query entered by the user — information that is passed to the translator along with the translation key, as an additional parameter: ```jsx harmony {LinkButton.component({ @@ -181,7 +181,7 @@ return app.translator.transChoice( ); ``` -This example is from the [Choose Tags modal](https://github.com/flarum/tags/blob/master/js/forum/src/components/TagDiscussionModal.js) of the Tags extension, where it tells the user how many more primary tags can be selected. Note that the `remaining` variable is passed to the translator **twice**. First, it appears as itself, to condition the pluralization of the word "tags". Then it appears again as the value of the `count` parameter, which the translator can use to insert that value in the translation. +This example is from the [Choose Tags modal](https://github.com/flarum/tags/blob/master/js/src/forum/components/TagDiscussionModal.js) of the Tags extension, where it tells the user how many more primary tags can be selected. Note that the `remaining` variable is passed to the translator **twice**. First, it appears as itself, to condition the pluralization of the word "tags". Then it appears again as the value of the `count` parameter, which the translator can use to insert that value in the translation. When the `app.translator.transChoice()` method is called, the translator scans the translation for a variant that matches the sort of pluralization required by the value of the variable. These variants need to be listed serially — singular form first, then plural forms in order of increasing magnitude — and separated using the vertical line (`|`) character. Here's the English translation for the above code: @@ -360,7 +360,7 @@ core: It would very easy to change the translation for the header link without realizing that you're also changing things in the Log In modal — to say nothing of any extensions that might also be referencing that key! This sort of thing will be less likely to occur if you keep your reused translations in the `ref` namespace. -For this reason, any key references in the [core resources](https://github.com/flarum/lang-english/blob/master/locale/core.yml) **must** point to keys in the `core.ref` namespace. Key references in the resources for bundled extensions may point to either of two locations: +For this reason, any key references in the [core resources](https://github.com/flarum/core/blob/master/locale/core.yml) **must** point to keys in the `core.ref` namespace. Key references in the resources for bundled extensions may point to either of two locations: - Extension-specific translations should go in the `ref` namespace of the extension's locale file. @@ -402,7 +402,7 @@ Generally speaking, any displayed text that isn't supplied by a variable or the Hardcoded text isn't the only way that code can create problems for localizers. Hardcoded syntax issues occur when the code forces words into a specific order that just won't work in other languages. They are generally the result of using two translations where just one would be more appropriate. -For an example, let's look at the line of text that's printed near the bottom of the [Log In modal](https://github.com/flarum/core/blob/master/js/forum/src/components/LogInModal.js): +For an example, let's look at the line of text that's printed near the bottom of the [Log In modal](https://github.com/flarum/core/blob/master/js/src/forum/components/LogInModal.js): > Don't have an account? [Sign Up](#) @@ -439,9 +439,9 @@ They are surprisingly easy to overlook. Of course, the need for pluralization su > You like this. > Toby and Franz like this. -And the situation is complicated by the presence of the second-person pronoun, since it always takes the plural form in English, even when we're talking about one person. That's why the `app.translator` call is so complicated in the code that outputs the above sentences for the [Likes extension](https://github.com/flarum/likes/blob/master/js/forum/src/addLikesList.js). +And the situation is complicated by the presence of the second-person pronoun, since it always takes the plural form in English, even when we're talking about one person. That's why the `app.translator` call is so complicated in the code that outputs the above sentences for the [Likes extension](https://github.com/flarum/likes/blob/master/js/src/forum/addLikesList.js). -Now look at this similar set of sentences, output by similar code in the [Mentions extension](https://github.com/flarum/mentions/blob/master/js/forum/src/addMentionedByList.js): +Now look at this similar set of sentences, output by similar code in the [Mentions extension](https://github.com/flarum/mentions/blob/master/js/src/forum/addMentionedByList.js): > Toby replied to this. > You replied to this. diff --git a/docs/extend/interactive-components.md b/docs/extend/interactive-components.md index 4bfd8b725..5bf361981 100644 --- a/docs/extend/interactive-components.md +++ b/docs/extend/interactive-components.md @@ -68,7 +68,7 @@ More information about methods available to override is available in our [API do Since Flarum is a forum, we need tools for users to be able to create and edit posts and discussions. Flarum accomplishes this through the floating composer component. -The composer is managed by a global instance of [`ComposerState`]([https://api.docs.flarum.org/js/master/class/src/common/states/modalmanagerstate.js~modalmanagerstate), which is accessible via `app.composer` on the `forum` frontend. Its most important public methods are: +The composer is managed by a global instance of [`ComposerState`](https://api.docs.flarum.org/js/master/class/src/common/states/modalmanagerstate.js~modalmanagerstate), which is accessible via `app.composer` on the `forum` frontend. Its most important public methods are: - `app.composer.load(componentClass, attrs)` will load in a new composer type. If a composer is already active, it will be replaced. - `app.composer.show()` will show the composer if it is currently hidden. @@ -84,5 +84,5 @@ This is done by splitting code for each usage into a subclass of `flarum/forum/c ### Composer Editor The actual editor is yet another component, [`flarum/common/components/TextEditor`](https://api.docs.flarum.org/js/master/class/src/common/components/texteditor.js~texteditor). -Its state can be programatically accessed via an "editor driver", which implements [`EditorDriverInterface`](https://github.com/flarum/core/blob/7d79912d3651f49e045302946b99a562f791b730/js/src/common/utils/EditorDriverInterface.ts). +Its state can be programatically accessed via an "editor driver", which implements [`EditorDriverInterface`](https://github.com/flarum/core/blob/master/js/src/common/utils/EditorDriverInterface.ts). This is globally available for the current composer via `app.composer.editor`, and allows extensions to programatically read, insert, and modify the current contents, selections, and cursor position of the active composer's text editor. diff --git a/docs/extend/search.md b/docs/extend/search.md index 09c131034..1afb06c4e 100644 --- a/docs/extend/search.md +++ b/docs/extend/search.md @@ -1,6 +1,6 @@ # Searching and Filtering -Flarum treats searching and filtering as parallel but distinct processes. Which process is used to handle a request to a [`List` API endpoint](http://localhost:8080/extend/data.html#api-endpoints) depends on the query parameters: +Flarum treats searching and filtering as parallel but distinct processes. Which process is used to handle a request to a [`List` API endpoint](/extend/data.html#api-endpoints) depends on the query parameters: - Filtering is applied when the `filter[q]` query param is omitted. Filters represent **structured** queries: for instance, you might want to only retrieve discussions in a certain category, or users who registered before a certain date. Filtering computes results based entirely on `filter[KEY] = VALUE` query parameters. - Searching is applied when the `filter[q]` query param is included. Searches represent **unstructured** queries: the user submits an arbitrary string, and data records that "match" it are returned. For instance, you might want to search discussions based on the content of their posts, or users based on their username. Searching computes results based solely on parsing the `filter[q]` query param: all other `filter[KEY] = VALUE` params are ignored when searching. It's important to note that searches aren't entirely unstructured: the dataset being searched can be constrained by gambits (which are very similar to filters, and will be explained later). diff --git a/docs/extend/testing.md b/docs/extend/testing.md index 6a772a035..e4c158503 100644 --- a/docs/extend/testing.md +++ b/docs/extend/testing.md @@ -129,7 +129,7 @@ Testing database information is configured via the `DB_HOST` (defaults to `local Now that we've provided the needed information, all we need to do is run `composer test:setup` in our extension's root directory, and we have our testing environment ready to go! -Since [(almost)](https://github.com/flarum/core/blob/master/tests/integration/api/discussions/ListTestWithFulltextSearch.php#L29-L43) all database operations in integration tests are run in transactions, developers working on multiple extensions will generally find it more convenient to use one shared database and tmp directory for testing all their extensions. To do this, set the database config and `FLARUM_TEST_TMP_DIR` environmental variables in your `.bashrc` or `.bash_profile` to the path you want to use, and run the setup script for any one extension (you'll still want to include the setup file in every repo for CI testing via Github Actions). You should then be good to go for any Flarum extension (or core). +Since [(almost)](https://github.com/flarum/core/blob/master/tests/integration/api/discussions/ListWithFulltextSearchTest.php#L29-L43) all database operations in integration tests are run in transactions, developers working on multiple extensions will generally find it more convenient to use one shared database and tmp directory for testing all their extensions. To do this, set the database config and `FLARUM_TEST_TMP_DIR` environmental variables in your `.bashrc` or `.bash_profile` to the path you want to use, and run the setup script for any one extension (you'll still want to include the setup file in every repo for CI testing via Github Actions). You should then be good to go for any Flarum extension (or core). ### Using Integration Tests diff --git a/docs/extend/update-b12.md b/docs/extend/update-b12.md index d963cd4a3..6a7196e0c 100644 --- a/docs/extend/update-b12.md +++ b/docs/extend/update-b12.md @@ -11,7 +11,7 @@ If you need help applying these changes or using new features, please start a di - **Reminder**: In previous versions of Flarum, an extensions' main file was named `bootstrap.php`. This name will no longer be supported in the stable 0.1 release. Make sure your extension uses the name `extend.php`. - PHP 7.1 support will be dropped in beta.13. -- Using library classes from the `Zend` namespace is now deprecated and will be removed in beta.13. Use the `Laminas` namespace instead. See [PR #1963](https://github.com/flarum/core/pull#1963). +- Using library classes from the `Zend` namespace is now deprecated and will be removed in beta.13. Use the `Laminas` namespace instead. See [PR #1963](https://github.com/flarum/core/pull/1963). - The `Flarum\Util\Str::slug()` method has been deprecated. Use `Illuminate\Support\Str::slug()` instead. - The `Flarum\Event\ConfigureMiddleware` has been deprecated. We finally have a [proper replacement](middleware.md) - see "New Features" below. Therefore, it will be removed in beta.13. - If you implement the `Flarum\Mail\DriverInterface`: diff --git a/docs/extend/update-b13.md b/docs/extend/update-b13.md index e50bf4a84..4c32827ec 100644 --- a/docs/extend/update-b13.md +++ b/docs/extend/update-b13.md @@ -9,7 +9,7 @@ If you need help applying these changes or using new features, please start a di ## Breaking Changes - Dropped support for PHP 7.1. -- Classes from the `Zend` namespace are now removed. Use the `Laminas` namespace instead. See [PR #1963](https://github.com/flarum/core/pull#1963). +- Classes from the `Zend` namespace are now removed. Use the `Laminas` namespace instead. See [PR #1963](https://github.com/flarum/core/pull/1963). - The `Flarum\Util\Str::slug()` method has been removed including the class. Use `Illuminate\Support\Str::slug()` instead. - The `Flarum\Event\ConfigureMiddleware` has been removed. Use the [proper replacement](middleware.md). - Several events used in Event Listeners have been removed, use their [replacement extender](start.md#extenders) instead. From f467cdbaa805edf8860d9af3de7a34bcf7e4c2b0 Mon Sep 17 00:00:00 2001 From: Nearata Date: Fri, 23 Apr 2021 16:49:45 +0200 Subject: [PATCH 2/5] update laravel links to v8 --- docs/extend/authorization.md | 4 ++-- docs/extend/backend-events.md | 4 ++-- docs/extend/data.md | 10 +++++----- docs/extend/notifications.md | 2 +- docs/extend/routes.md | 4 ++-- docs/extend/service-provider.md | 4 ++-- docs/extend/settings.md | 2 +- docs/extend/start.md | 2 +- 8 files changed, 16 insertions(+), 16 deletions(-) diff --git a/docs/extend/authorization.md b/docs/extend/authorization.md index 3106ef597..24d0123ce 100644 --- a/docs/extend/authorization.md +++ b/docs/extend/authorization.md @@ -195,7 +195,7 @@ return [ ## Visibility Scoping When a user visits the **All Discussions** page, we want to quickly show them the recent discussions that the user has access to. -We do this via the `whereVisibleTo` method, which is defined in `Flarum\Database\ScopeVisibilityTrait`, and available to [Eloquent models and queries](https://laravel.com/docs/6.x/queries) through [Eloquent scoping](https://laravel.com/docs/6.x/eloquent#local-scopes). +We do this via the `whereVisibleTo` method, which is defined in `Flarum\Database\ScopeVisibilityTrait`, and available to [Eloquent models and queries](https://laravel.com/docs/8.x/queries) through [Eloquent scoping](https://laravel.com/docs/8.x/eloquent#local-scopes). For example: ```php @@ -224,7 +224,7 @@ This call is handled by Flarum's general model visibility scoping system, which The query will be run through all applicable scopers registered for the model of the query. Note that visibility scopers registered for a parent class (like `Flarum\Post\Post`) will also be applied to any child classes (like `Flarum\Post\CommentPost`). -Note that scopers don't need to return anything, but rather should perform in-place mutations on the [Eloquent query object](https://laravel.com/docs/6.x/queries). +Note that scopers don't need to return anything, but rather should perform in-place mutations on the [Eloquent query object](https://laravel.com/docs/8.x/queries). ### Custom Permission Strings diff --git a/docs/extend/backend-events.md b/docs/extend/backend-events.md index 0d5907ea9..66ae11d42 100644 --- a/docs/extend/backend-events.md +++ b/docs/extend/backend-events.md @@ -1,6 +1,6 @@ # Backend Events -Often, an extension will want to react to some events occuring elsewhere in Flarum. For instance, we might want to increment a counter when a new discussion is posted, send a welcome email when a user logs in for the first time, or add tags to a discussion before saving it to the database. These events are known as **domain events**, and are broadcasted across the framework through [Laravel's event system](https://laravel.com/docs/6.x/events). +Often, an extension will want to react to some events occuring elsewhere in Flarum. For instance, we might want to increment a counter when a new discussion is posted, send a welcome email when a user logs in for the first time, or add tags to a discussion before saving it to the database. These events are known as **domain events**, and are broadcasted across the framework through [Laravel's event system](https://laravel.com/docs/8.x/events). :::warning Old Event API Historically, Flarum has used events for its extension API, emitting events like `GetDisplayName` or `ConfigureApiRoutes` to allow extensions to insert logic into various parts of Flarum. These events are gradually being phased out in favor of the declarative [extender system](start.md#extenders), and will be removed before stable. Domain events will not be removed. @@ -43,7 +43,7 @@ class PostDeletedListener } ``` -As shown above, a listener class can be used instead of a callback. This allows you to [inject dependencies](https://laravel.com/docs/6.x/container) into your listener class via constructor parameters. In this example we resolve a translator instance, but we can inject anything we want/need. +As shown above, a listener class can be used instead of a callback. This allows you to [inject dependencies](https://laravel.com/docs/8.x/container) into your listener class via constructor parameters. In this example we resolve a translator instance, but we can inject anything we want/need. You can also listen to multiple events at once via an event subscriber. This is useful for grouping common functionality; for instance, if you want to update some metadata on changes to posts: diff --git a/docs/extend/data.md b/docs/extend/data.md index c57664c50..399468490 100644 --- a/docs/extend/data.md +++ b/docs/extend/data.md @@ -28,7 +28,7 @@ Migrations live inside a folder suitably named `migrations` in your extension's ### Migration Structure -In Flarum, migration files should **return an array** with two functions: `up` and `down`. The `up` function is used to add new tables, columns, or indexes to your database, while the `down` function should reverse these operations. These functions receive an instance of the [Laravel schema builder](https://laravel.com/docs/6.x/migrations#creating-tables) which you can use to alter the database schema: +In Flarum, migration files should **return an array** with two functions: `up` and `down`. The `up` function is used to add new tables, columns, or indexes to your database, while the `down` function should reverse these operations. These functions receive an instance of the [Laravel schema builder](https://laravel.com/docs/8.x/migrations#creating-tables) which you can use to alter the database schema: ```php 'to']); ### Data Migrations (Advanced) -A migration doesn't have to change database structure: you could use a migration to insert, update, or delete rows in a table. For instance, you could use migrations to assign [custom permissions](permissions.md) to groups other than Admin, or provide some initial data for a custom Eloquent model. Since you have access to the [Eloquent Schema Builder](https://laravel.com/docs/6.x/migrations#creating-tables), anything is possible (although of course, you should be extremely cautious and test your extension extensively). +A migration doesn't have to change database structure: you could use a migration to insert, update, or delete rows in a table. For instance, you could use migrations to assign [custom permissions](permissions.md) to groups other than Admin, or provide some initial data for a custom Eloquent model. Since you have access to the [Eloquent Schema Builder](https://laravel.com/docs/8.x/migrations#creating-tables), anything is possible (although of course, you should be extremely cautious and test your extension extensively). Data migrations are the recommended way to specify default settings and permissions. ## Backend Models -With all your snazzy new database tables and columns, you're going to want a way to access the data in both the backend and the frontend. On the backend it's pretty straightforward – you just need to be familiar with [Eloquent](https://laravel.com/docs/6.x/eloquent). +With all your snazzy new database tables and columns, you're going to want a way to access the data in both the backend and the frontend. On the backend it's pretty straightforward – you just need to be familiar with [Eloquent](https://laravel.com/docs/8.x/eloquent). ### Adding New Models @@ -141,7 +141,7 @@ return [ ### Relationships -You can also add [relationships](https://laravel.com/docs/6.x/eloquent-relationships) to existing models using the `hasOne`, `belongsTo`, `hasMany`, `belongsToMany`and `relationship` methods on the `Model` extender. The first argument is the relationship name; the rest of the arguments are passed into the equivalent method on the model, so you can specify the related model name and optionally override table and key names: +You can also add [relationships](https://laravel.com/docs/8.x/eloquent-relationships) to existing models using the `hasOne`, `belongsTo`, `hasMany`, `belongsToMany`and `relationship` methods on the `Model` extender. The first argument is the relationship name; the rest of the arguments are passed into the equivalent method on the model, so you can specify the related model name and optionally override table and key names: ```php new Extend\Model(User::class) diff --git a/docs/extend/notifications.md b/docs/extend/notifications.md index 638530105..79b2caaf5 100644 --- a/docs/extend/notifications.md +++ b/docs/extend/notifications.md @@ -99,7 +99,7 @@ In addition to registering our notification to send by email, if we actually wan To do this, your notification blueprint should implement [`Flarum\Notification\MailableInterface`](https://api.docs.flarum.org/php/master/flarum/notification/mailableinterface) in addition to [`Flarum\Notification\Blueprint\BlueprintInterface`](https://api.docs.flarum.org/php/master/flarum/notification/blueprint/blueprintinterface). This comes with 2 additional methods: -- `getEmailView()` should return an array of email type to [Blade View](https://laravel.com/docs/6.x/blade) names. The namespaces for these views must [first be registered](routes.md#views). These will be used to generate the body of the email. +- `getEmailView()` should return an array of email type to [Blade View](https://laravel.com/docs/8.x/blade) names. The namespaces for these views must [first be registered](routes.md#views). These will be used to generate the body of the email. - `getEmailSubject(TranslatorInterface $translator)` should return a string for the email subject. An instance of the translator is passed in to enable translated notification emails. Let's take a look at an example from [Flarum Mentions](https://github.com/flarum/mentions/blob/master/src/Notification/PostMentionedBlueprint.php) diff --git a/docs/extend/routes.md b/docs/extend/routes.md index 985065485..c0eebb2c7 100644 --- a/docs/extend/routes.md +++ b/docs/extend/routes.md @@ -59,7 +59,7 @@ class HelloWorldController implements RequestHandlerInterface } ``` -Controllers are resolved from the [container](https://laravel.com/docs/6.x/container) so you can inject dependencies into their constructors. +Controllers are resolved from the [container](https://laravel.com/docs/8.x/container) so you can inject dependencies into their constructors. :::tip What are Controllers? The `handle` method of a Controller is the code that runs when someone visits your route (or sends data to it via a form submission). Generally speaking, Controller implementations follow the pattern: @@ -97,7 +97,7 @@ $url = $this->url->to('forum')->route('acme.user', ['id' => 123, 'foo' => 'bar'] ### Views -You can inject Laravel's [View](https://laravel.com/docs/6.x/views) factory into your controller. This will allow you to render a [Blade template](https://laravel.com/docs/6.x/blade) into your controller's response. +You can inject Laravel's [View](https://laravel.com/docs/8.x/views) factory into your controller. This will allow you to render a [Blade template](https://laravel.com/docs/8.x/blade) into your controller's response. First, you will need to tell the view factory where it can find your extension's view files by adding a `View` extender to `extend.php`: diff --git a/docs/extend/service-provider.md b/docs/extend/service-provider.md index bec009ee4..834c42992 100644 --- a/docs/extend/service-provider.md +++ b/docs/extend/service-provider.md @@ -1,7 +1,7 @@ # Service Provider -As noted throughout this documentation, Flarum uses [Laravel's service container](https://laravel.com/docs/6.x/container) (or IoC container) for dependency injection. -[Service Providers](https://laravel.com/docs/6.x/providers) allow low-level configuration and modification of the Flarum backend. +As noted throughout this documentation, Flarum uses [Laravel's service container](https://laravel.com/docs/8.x/container) (or IoC container) for dependency injection. +[Service Providers](https://laravel.com/docs/8.x/providers) allow low-level configuration and modification of the Flarum backend. The most common use case for service providers is to create, modify, or replace container bindings. That being said, service providers allow you full access to run whatever logic you need during application boot with access to the container. diff --git a/docs/extend/settings.md b/docs/extend/settings.md index 1debee2c2..5e0f1b492 100644 --- a/docs/extend/settings.md +++ b/docs/extend/settings.md @@ -5,7 +5,7 @@ At some point while making an extension, you might want to read some of the foru ## The Settings Repository Reading or changing settings can be done using an implementation of the `SettingsRepositoryInterface`. -Because Flarum uses [Laravel's service container](https://laravel.com/docs/6.x/container) (or IoC container) for dependency injection, you don't need to worry about where to obtain such a repository, or how to instantiate one. +Because Flarum uses [Laravel's service container](https://laravel.com/docs/8.x/container) (or IoC container) for dependency injection, you don't need to worry about where to obtain such a repository, or how to instantiate one. Instead, you can rely on the container to instantiate your class and inject the correct dependencies. ```php diff --git a/docs/extend/start.md b/docs/extend/start.md index a5c58ee90..d7ac76d9c 100644 --- a/docs/extend/start.md +++ b/docs/extend/start.md @@ -10,7 +10,7 @@ Be aware that Flarum uses some _modern_ languages and tools. If you've only ever Flarum is made up of three layers: -* First, there is the **backend**. This is written in [object-oriented PHP](https://laracasts.com/series/object-oriented-bootcamp-in-php), and makes use of a wide array of [Laravel](https://laravel.com/) components and other packages via [Composer](https://getcomposer.org/). You'll also want to familiarize yourself with the concept of [Dependency Injection](https://laravel.com/docs/6.x/container), which is used throughout our backend. +* First, there is the **backend**. This is written in [object-oriented PHP](https://laracasts.com/series/object-oriented-bootcamp-in-php), and makes use of a wide array of [Laravel](https://laravel.com/) components and other packages via [Composer](https://getcomposer.org/). You'll also want to familiarize yourself with the concept of [Dependency Injection](https://laravel.com/docs/8.x/container), which is used throughout our backend. * Second, the backend exposes a **public API** which allows frontend clients to interface with your forum's data. This is built according to the [JSON:API specification](https://jsonapi.org/). From 6c2a785a62c591cd32261d742873a02c0fbeb9a7 Mon Sep 17 00:00:00 2001 From: Nearata Date: Fri, 23 Apr 2021 17:33:13 +0200 Subject: [PATCH 3/5] revert `permissions.md` link * correct, but docs not yet available. --- docs/admin.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/admin.md b/docs/admin.md index f5f28d520..32f6ae515 100644 --- a/docs/admin.md +++ b/docs/admin.md @@ -1,5 +1,5 @@ # Admin Dashboard The Flarum Admin Dashboard is a user-friendly interface for managing your forum. -It is only available to users in the "Admin" [group](/extend/permissions.md). +It is only available to users in the "Admin" [group](permissions.md). To access the Admin dashboard, Click on your **Name** at the at the top right of the screen, and select **Administration**. From 44f3f943c6dd89f83c11c1b499741b96cb7065c1 Mon Sep 17 00:00:00 2001 From: Nearata Date: Fri, 23 Apr 2021 18:03:52 +0200 Subject: [PATCH 4/5] fix html comment * README for tests not yet available --- docs/contributing.md | 1 + 1 file changed, 1 insertion(+) diff --git a/docs/contributing.md b/docs/contributing.md index 6e2bfa7cc..ecea17696 100644 --- a/docs/contributing.md +++ b/docs/contributing.md @@ -65,6 +65,7 @@ A typical contribution workflow looks like this: 1. 🚦 **Test** your code. * Add unit tests as necessary when fixing bugs or adding features. * Run the test suite with `vendor/bin/phpunit` in the relevant package folder. + From f6552ffe38c539181d15c7f8d0e930e9f55857f8 Mon Sep 17 00:00:00 2001 From: Nearata Date: Fri, 23 Apr 2021 18:08:54 +0200 Subject: [PATCH 5/5] LESS url is protected by SSL --- docs/extend/frontend.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/extend/frontend.md b/docs/extend/frontend.md index d97e76f43..43f117070 100644 --- a/docs/extend/frontend.md +++ b/docs/extend/frontend.md @@ -174,7 +174,7 @@ Only one main JavaScript file per extension is permitted. If you need to include ### CSS -You can also add CSS and [LESS](http://lesscss.org/features/) assets to the frontend using the `Frontend` extender's `css` method: +You can also add CSS and [LESS](https://lesscss.org/features/) assets to the frontend using the `Frontend` extender's `css` method: ```php (new Extend\Frontend('forum'))