diff --git a/docs/guide/caching-data.md b/docs/guide/caching-data.md index fcea6e1..9665a60 100644 --- a/docs/guide/caching-data.md +++ b/docs/guide/caching-data.md @@ -124,13 +124,13 @@ Yii supports a wide range of cache storage. The following is a summary: and [memcached](https://www.php.net/manual/en/book.memcached.php) extensions. This option can be considered as the fastest one when dealing with cache in a distributed applications (e.g. with several servers, load balancers, etc.) -* [[yii\redis\Cache]]: implements a cache component based on [Redis](http://redis.io/) key-value store +* [[yii\redis\Cache]]: implements a cache component based on [Redis](https://redis.io/) key-value store (redis version 2.6.12 or higher is required). -* [[yii\caching\WinCache]]: uses PHP [WinCache](http://iis.net/downloads/microsoft/wincache-extension) +* [[yii\caching\WinCache]]: uses PHP [WinCache](https://iis.net/downloads/microsoft/wincache-extension) ([see also](https://www.php.net/manual/en/book.wincache.php)) extension. * [[yii\caching\XCache]] _(deprecated)_: uses PHP [XCache](https://en.wikipedia.org/wiki/List_of_PHP_accelerators#XCache) extension. * [[yii\caching\ZendDataCache]] _(deprecated)_: uses - [Zend Data Cache](http://files.zend.com/help/Zend-Server-6/zend-server.htm#data_cache_component.htm) + [Zend Data Cache](https://files.zend.com/help/Zend-Server-6/zend-server.htm#data_cache_component.htm) as the underlying caching medium. diff --git a/docs/guide/concept-aliases.md b/docs/guide/concept-aliases.md index 381ee86..955468f 100644 --- a/docs/guide/concept-aliases.md +++ b/docs/guide/concept-aliases.md @@ -116,7 +116,7 @@ Yii predefines a set of aliases to easily reference commonly used file paths and containing the [entry script](structure-entry-scripts.md). - `@web`, the base URL of the currently running Web application. It has the same value as [[yii\web\Request::baseUrl]]. - `@vendor`, the [[yii\base\Application::vendorPath|Composer vendor directory]]. Defaults to `@app/vendor`. -- `@bower`, the root directory that contains [bower packages](http://bower.io/). Defaults to `@vendor/bower`. +- `@bower`, the root directory that contains [bower packages](https://bower.io/). Defaults to `@vendor/bower`. - `@npm`, the root directory that contains [npm packages](https://www.npmjs.com/). Defaults to `@vendor/npm`. The `@yii` alias is defined when you include the `Yii.php` file in your [entry script](structure-entry-scripts.md). diff --git a/docs/guide/concept-behaviors.md b/docs/guide/concept-behaviors.md index e898133..ea085c8 100644 --- a/docs/guide/concept-behaviors.md +++ b/docs/guide/concept-behaviors.md @@ -2,7 +2,7 @@ Behaviors ========= Behaviors are instances of [[yii\base\Behavior]], or of a child class. Behaviors, also known -as [mixins](http://en.wikipedia.org/wiki/Mixin), allow you to enhance the functionality +as [mixins](https://en.wikipedia.org/wiki/Mixin), allow you to enhance the functionality of an existing [[yii\base\Component|component]] class without needing to change the class's inheritance. Attaching a behavior to a component "injects" the behavior's methods and properties into the component, making those methods and properties accessible as if they were defined in the component class itself. Moreover, a behavior can respond to the [events](concept-events.md) triggered by the component, which allows behaviors to also customize the normal diff --git a/docs/guide/concept-di-container.md b/docs/guide/concept-di-container.md index 0493bae..b48790a 100644 --- a/docs/guide/concept-di-container.md +++ b/docs/guide/concept-di-container.md @@ -2,7 +2,7 @@ Dependency Injection Container ============================== A dependency injection (DI) container is an object that knows how to instantiate and configure objects and -all their dependent objects. [Martin Fowler's article](http://martinfowler.com/articles/injection.html) has well +all their dependent objects. [Martin Fowler's article](https://martinfowler.com/articles/injection.html) has well explained why DI container is useful. Here we will mainly explain the usage of the DI container provided by Yii. @@ -544,7 +544,7 @@ Summary Both dependency injection and [service locator](concept-service-locator.md) are popular design patterns that allow building software in a loosely-coupled and more testable fashion. We highly recommend you to read -[Martin's article](http://martinfowler.com/articles/injection.html) to get a deeper understanding of +[Martin's article](https://martinfowler.com/articles/injection.html) to get a deeper understanding of dependency injection and service locator. Yii implements its [service locator](concept-service-locator.md) on top of the dependency injection (DI) container. diff --git a/docs/guide/db-active-record.md b/docs/guide/db-active-record.md index 8dfa6ec..5732856 100644 --- a/docs/guide/db-active-record.md +++ b/docs/guide/db-active-record.md @@ -1,7 +1,7 @@ Active Record ============= -[Active Record](http://en.wikipedia.org/wiki/Active_record_pattern) provides an object-oriented interface +[Active Record](https://en.wikipedia.org/wiki/Active_record_pattern) provides an object-oriented interface for accessing and manipulating data stored in databases. An Active Record class is associated with a database table, an Active Record instance corresponds to a row of that table, and an *attribute* of an Active Record instance represents the value of a particular column in that row. Instead of writing raw SQL statements, diff --git a/docs/guide/db-dao.md b/docs/guide/db-dao.md index 1edf541..81026dd 100644 --- a/docs/guide/db-dao.md +++ b/docs/guide/db-dao.md @@ -11,11 +11,11 @@ you have to take extra effort to create a database-agnostic application. In Yii 2.0, DAO supports the following databases out of the box: -- [MySQL](http://www.mysql.com/) +- [MySQL](https://www.mysql.com/) - [MariaDB](https://mariadb.com/) -- [SQLite](http://sqlite.org/) -- [PostgreSQL](http://www.postgresql.org/): version 8.4 or higher -- [CUBRID](http://www.cubrid.org/): version 9.3 or higher. +- [SQLite](https://sqlite.org/) +- [PostgreSQL](https://www.postgresql.org/): version 8.4 or higher +- [CUBRID](https://www.cubrid.org/): version 9.3 or higher. - [Oracle](https://www.oracle.com/database/) - [MSSQL](https://www.microsoft.com/en-us/sqlserver/default.aspx): version 2008 or higher. diff --git a/docs/guide/db-migrations.md b/docs/guide/db-migrations.md index 326e0f5..44f87aa 100644 --- a/docs/guide/db-migrations.md +++ b/docs/guide/db-migrations.md @@ -685,7 +685,7 @@ in `safeDown()`. In the above example we first create the table and then insert in `safeDown()` we first delete the row and then drop the table. > Note: Not all DBMS support transactions. And some DB queries cannot be put into a transaction. For some examples, - please refer to [implicit commit](http://dev.mysql.com/doc/refman/5.7/en/implicit-commit.html). If this is the case, + please refer to [implicit commit](https://dev.mysql.com/doc/refman/5.7/en/implicit-commit.html). If this is the case, you should still implement `up()` and `down()`, instead. diff --git a/docs/guide/db-query-builder.md b/docs/guide/db-query-builder.md index 5d9b6e0..f2d4248 100644 --- a/docs/guide/db-query-builder.md +++ b/docs/guide/db-query-builder.md @@ -298,7 +298,7 @@ the operator can be one of the following: should be applied. Note that when using an escape mapping (or the third operand is not provided), the values will be automatically enclosed within a pair of percentage characters. - > Note: When using PostgreSQL you may also use [`ilike`](http://www.postgresql.org/docs/8.3/static/functions-matching.html#FUNCTIONS-LIKE) + > Note: When using PostgreSQL you may also use [`ilike`](https://www.postgresql.org/docs/8.3/static/functions-matching.html#FUNCTIONS-LIKE) > instead of `like` for case-insensitive matching. - `or like`: similar to the `like` operator except that `OR` is used to concatenate the `LIKE` diff --git a/docs/guide/input-validation.md b/docs/guide/input-validation.md index a77e873..f02ffd2 100644 --- a/docs/guide/input-validation.md +++ b/docs/guide/input-validation.md @@ -748,7 +748,7 @@ JS; ### Deferred Validation -If you need to perform asynchronous client-side validation, you can create [Deferred objects](http://api.jquery.com/category/deferred-object/). +If you need to perform asynchronous client-side validation, you can create [Deferred objects](https://api.jquery.com/category/deferred-object/). For example, to perform a custom AJAX validation, you can use the following code: ```php diff --git a/docs/guide/output-client-scripts.md b/docs/guide/output-client-scripts.md index d12e3e3..8d12a5a 100644 --- a/docs/guide/output-client-scripts.md +++ b/docs/guide/output-client-scripts.md @@ -35,10 +35,10 @@ determines at which position the script should be inserted into the page. Possib - [[yii\web\View::POS_HEAD|View::POS_HEAD]] for head section. - [[yii\web\View::POS_BEGIN|View::POS_BEGIN]] for right after opening `
`. - [[yii\web\View::POS_END|View::POS_END]] for right before closing ``. -- [[yii\web\View::POS_READY|View::POS_READY]] for executing code on the [document `ready` event](http://learn.jquery.com/using-jquery-core/document-ready/). +- [[yii\web\View::POS_READY|View::POS_READY]] for executing code on the [document `ready` event](https://learn.jquery.com/using-jquery-core/document-ready/). This will automatically register [[yii\web\JqueryAsset|jQuery]] and wrap the code into the appropriate jQuery code. This is the default position. - [[yii\web\View::POS_LOAD|View::POS_LOAD]] for executing code on the - [document `load` event](http://learn.jquery.com/using-jquery-core/document-ready/). Same as the above, this will also register [[yii\web\JqueryAsset|jQuery]] automatically. + [document `load` event](https://learn.jquery.com/using-jquery-core/document-ready/). Same as the above, this will also register [[yii\web\JqueryAsset|jQuery]] automatically. The last argument is a unique script ID that is used to identify the script code block and replace an existing one with the same ID instead of adding a new one. If you don't provide it, the JS code itself will be used as the ID. It is used to avoid registration of the same code muliple times. diff --git a/docs/guide/output-formatting.md b/docs/guide/output-formatting.md index de8497a..7db8ec9 100644 --- a/docs/guide/output-formatting.md +++ b/docs/guide/output-formatting.md @@ -75,7 +75,7 @@ The formatter supports the following output formats that are related with date a - [[yii\i18n\Formatter::asDate()|date]]: the value is formatted as a date, e.g. `January 01, 2014`. - [[yii\i18n\Formatter::asTime()|time]]: the value is formatted as a time, e.g. `14:23`. - [[yii\i18n\Formatter::asDatetime()|datetime]]: the value is formatted as date and time, e.g. `January 01, 2014 14:23`. -- [[yii\i18n\Formatter::asTimestamp()|timestamp]]: the value is formatted as a [unix timestamp](http://en.wikipedia.org/wiki/Unix_time), e.g. `1412609982`. +- [[yii\i18n\Formatter::asTimestamp()|timestamp]]: the value is formatted as a [unix timestamp](https://en.wikipedia.org/wiki/Unix_time), e.g. `1412609982`. - [[yii\i18n\Formatter::asRelativeTime()|relativeTime]]: the value is formatted as the time interval between a date and now in human readable form e.g. `1 hour ago`. - [[yii\i18n\Formatter::asDuration()|duration]]: the value is formatted as a duration in human readable format. e.g. `1 day, 2 minutes`. diff --git a/docs/guide/rest-authentication.md b/docs/guide/rest-authentication.md index 78b2213..87487b5 100644 --- a/docs/guide/rest-authentication.md +++ b/docs/guide/rest-authentication.md @@ -10,14 +10,14 @@ via HTTPS to prevent man-in-the-middle (MitM) attacks**. There are different ways to send an access token: -* [HTTP Basic Auth](http://en.wikipedia.org/wiki/Basic_access_authentication): the access token +* [HTTP Basic Auth](https://en.wikipedia.org/wiki/Basic_access_authentication): the access token is sent as the username. This should only be used when an access token can be safely stored on the API consumer side. For example, the API consumer is a program running on a server. * Query parameter: the access token is sent as a query parameter in the API URL, e.g., `https://example.com/users?access-token=xxxxxxxx`. Because most Web servers will keep query parameters in server logs, this approach should be mainly used to serve `JSONP` requests which cannot use HTTP headers to send access tokens. -* [OAuth 2](http://oauth.net/2/): the access token is obtained by the consumer from an authorization +* [OAuth 2](https://oauth.net/2/): the access token is obtained by the consumer from an authorization server and sent to the API server via [HTTP Bearer Tokens](https://datatracker.ietf.org/doc/html/rfc6750), according to the OAuth2 protocol. diff --git a/docs/guide/rest-quick-start.md b/docs/guide/rest-quick-start.md index d1cc8ad..b9cd113 100644 --- a/docs/guide/rest-quick-start.md +++ b/docs/guide/rest-quick-start.md @@ -9,7 +9,7 @@ In particular, Yii supports the following features about RESTful APIs: * Customizable object serialization with support for selectable output fields; * Proper formatting of collection data and validation errors; * Collection pagination, filtering and sorting; -* Support for [HATEOAS](http://en.wikipedia.org/wiki/HATEOAS); +* Support for [HATEOAS](https://en.wikipedia.org/wiki/HATEOAS); * Efficient routing with proper HTTP verb check; * Built-in support for the `OPTIONS` and `HEAD` verbs; * Authentication and authorization; diff --git a/docs/guide/rest-resources.md b/docs/guide/rest-resources.md index 164cbf5..7b1f72e 100644 --- a/docs/guide/rest-resources.md +++ b/docs/guide/rest-resources.md @@ -140,7 +140,7 @@ the request with `http://localhost/users?fields=id,email&expand=profile` may ret ## Links -[HATEOAS](http://en.wikipedia.org/wiki/HATEOAS), an abbreviation for Hypermedia as the Engine of Application State, +[HATEOAS](https://en.wikipedia.org/wiki/HATEOAS), an abbreviation for Hypermedia as the Engine of Application State, promotes that RESTful APIs should return information that allows clients to discover actions supported for the returned resources. The key of HATEOAS is to return a set of hyperlinks with relation information when resource data are served by the APIs. diff --git a/docs/guide/rest-response-formatting.md b/docs/guide/rest-response-formatting.md index bfc5955..f6c4a23 100644 --- a/docs/guide/rest-response-formatting.md +++ b/docs/guide/rest-response-formatting.md @@ -5,7 +5,7 @@ When handling a RESTful API request, an application usually takes the following with response formatting: 1. Determine various factors that may affect the response format, such as media type, language, version, etc. - This process is also known as [content negotiation](http://en.wikipedia.org/wiki/Content_negotiation). + This process is also known as [content negotiation](https://en.wikipedia.org/wiki/Content_negotiation). 2. Convert resource objects into arrays, as described in the [Resources](rest-resources.md) section. This is done by [[yii\rest\Serializer]]. 3. Convert arrays into a string in the format as determined by the content negotiation step. This is diff --git a/docs/guide/rest-versioning.md b/docs/guide/rest-versioning.md index 946f2f9..4a90c3e 100644 --- a/docs/guide/rest-versioning.md +++ b/docs/guide/rest-versioning.md @@ -5,7 +5,7 @@ A good API is *versioned*: changes and new features are implemented in new versi code, APIs are meant to be used by clients beyond your control. For this reason, backward compatibility (BC) of the APIs should be maintained whenever possible. If a change that may break BC is necessary, you should introduce it in new version of the API, and bump up the version number. Existing clients can continue to use the old, working version of the API; and new or upgraded clients can get the new functionality in the new API version. -> Tip: Refer to [Semantic Versioning](http://semver.org/) +> Tip: Refer to [Semantic Versioning](https://semver.org/) for more information on designing API version numbers. One common way to implement API versioning is to embed the version number in the API URLs. diff --git a/docs/guide/runtime-responses.md b/docs/guide/runtime-responses.md index 9934ca3..9e8efd0 100644 --- a/docs/guide/runtime-responses.md +++ b/docs/guide/runtime-responses.md @@ -230,9 +230,9 @@ can terminate earlier while the Web server is sending the file. To use this feat the [[yii\web\Response::xSendFile()]]. The following list summarizes how to enable the `X-Sendfile` feature for some popular Web servers: -- Apache: [X-Sendfile](http://tn123.org/mod_xsendfile) -- Lighttpd v1.4: [X-LIGHTTPD-send-file](http://redmine.lighttpd.net/projects/lighttpd/wiki/X-LIGHTTPD-send-file) -- Lighttpd v1.5: [X-Sendfile](http://redmine.lighttpd.net/projects/lighttpd/wiki/X-LIGHTTPD-send-file) +- Apache: [X-Sendfile](https://tn123.org/mod_xsendfile) +- Lighttpd v1.4: [X-LIGHTTPD-send-file](https://redmine.lighttpd.net/projects/lighttpd/wiki/X-LIGHTTPD-send-file) +- Lighttpd v1.5: [X-Sendfile](https://redmine.lighttpd.net/projects/lighttpd/wiki/X-LIGHTTPD-send-file) - Nginx: [X-Accel-Redirect](https://www.nginx.com/resources/wiki/start/topics/examples/xsendfile/) - Cherokee: [X-Sendfile and X-Accel-Redirect](http://www.cherokee-project.com/doc/other_goodies.html#x-sendfile) diff --git a/docs/guide/runtime-sessions-cookies.md b/docs/guide/runtime-sessions-cookies.md index e53adc9..4d7c267 100644 --- a/docs/guide/runtime-sessions-cookies.md +++ b/docs/guide/runtime-sessions-cookies.md @@ -131,7 +131,7 @@ session classes implementing different session storage: * [[yii\web\DbSession]]: stores session data in a database table. * [[yii\web\CacheSession]]: stores session data in a cache with the help of a configured [cache component](caching-data.md#cache-components). -* [[yii\redis\Session]]: stores session data using [redis](http://redis.io/) as the storage medium. +* [[yii\redis\Session]]: stores session data using [redis](https://redis.io/) as the storage medium. * [[yii\mongodb\Session]]: stores session data in a [MongoDB](https://www.mongodb.com/). All these session classes support the same set of API methods. As a result, you can switch to a different diff --git a/docs/guide/security-authorization.md b/docs/guide/security-authorization.md index 83563e4..52ebc4b 100644 --- a/docs/guide/security-authorization.md +++ b/docs/guide/security-authorization.md @@ -156,7 +156,7 @@ class SiteController extends Controller ## Role Based Access Control (RBAC) Role-Based Access Control (RBAC) provides a simple yet powerful centralized access control. Please refer to -the [Wikipedia](http://en.wikipedia.org/wiki/Role-based_access_control) for details about comparing RBAC +the [Wikipedia](https://en.wikipedia.org/wiki/Role-based_access_control) for details about comparing RBAC with other more traditional access control schemes. Yii implements a General Hierarchical RBAC, following the [NIST RBAC model](https://csrc.nist.gov/CSRC/media/Publications/conference-paper/1992/10/13/role-based-access-controls/documents/ferraiolo-kuhn-92.pdf). diff --git a/docs/guide/security-best-practices.md b/docs/guide/security-best-practices.md index 2724ce7..1fb59e4 100644 --- a/docs/guide/security-best-practices.md +++ b/docs/guide/security-best-practices.md @@ -330,7 +330,7 @@ or explicitly set or filter the value by setting the [[yii\web\Request::setHostI For more information about the server configuration, please refer to the documentation of your webserver: -- Apache 2: