SetEnv APP_ENV prod SetEnv DATABASE_URL 'mysql://user:pw@127.0.0.1:3306/dbname'
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?php | |
declare(strict_types=1); | |
/* | |
A pattern with multiple conditions: | |
- at least one digit. | |
- at least one lowercase letter (including special Scandinavian characters). | |
- at least one uppercase letter (including special Scandinavian characters). | |
- at least one character that is not a letter or a number (including special Scandinavian characters). |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?php | |
namespace Drupal\your_module\Controller; | |
use Symfony\Component\HttpKernel\Exception\AccessDeniedHttpException; | |
class YourController { | |
public function yourPage() { | |
// Some logic here... |
To retrieve a timezone for Ukraine in PHP 8+
php -r "var_export(DateTimeZone::listIdentifiers(DateTimeZone::PER_COUNTRY, 'UA'));"
Possible output:
array (
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<html> | |
<head> | |
<title>Unsubscribe successful</title> | |
</head> | |
<body> | |
<h1>Unsubscribe successful</h1> | |
<p>Your email has been successfully unsubscribed from this list.</p> | |
</body> | |
</html> |
Archive a folder without redundant files using the command line on macOS.
cd <folder_path>
where <folder_path>
— a folder which should be archived.
zip -r .zip . -x "*.git*" -x "*.DS_Store"
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/** | |
* Groups an array of objects by object property | |
*/ | |
const groupBy = <T>(array: T[], key: keyof T): { [key: string]: T[] } => { | |
return array.reduce((accumulator: { [key: string]: T[] }, currentElement: T) => { | |
const keyValue = currentElement[key] as unknown as string; | |
if (keyValue in accumulator) { | |
accumulator[keyValue].push(currentElement); | |
} else { |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// This function is quite flexible because it can handle any number of input arrays and | |
// doesn't require them to be of equal length. It interleaves as many elements as possible | |
// from each array, in the order that the arrays (and elements) were provided. | |
/** | |
* Interleaves elements of multiple arrays. | |
* The function takes any number of arrays as arguments. | |
*/ | |
function interleaveArrays(...args) { | |
// Find the maximum length among all arrays |
How to start a new Node.js project:
npx license mit > LICENSE
npx gitignore node
npx covgen YOUR_EMAIL_ADDRESS
npm init -y
NewerOlder