Skip to content

Instantly share code, notes, and snippets.

@prashantdsala
prashantdsala / myController.php
Created April 12, 2023 06:57
Drupal - Snippet to programatically return a block as a response to AJAX request from controller
<?php
use Drupal\Core\Render\Renderer;
use Drupal\Core\Ajax\AjaxResponse;
use Drupal\Core\Form\FormBuilder;
/**
* Drupal\Core\Block\BlockManager definition.
*
* @var \Drupal\Core\Block\BlockManager
*/
@prashantdsala
prashantdsala / myController.php
Last active April 12, 2023 06:59
Drupal - Snippet to programatically return a view as a response to AJAX request from controller
<?php
use Drupal\Core\Ajax\AjaxResponse;
use Drupal\views\Views;
use Drupal\Core\Render\Renderer
/**
* Drupal\Core\Render\Renderer definition.
*
* @var \Drupal\Core\Render\Renderer
@prashantdsala
prashantdsala / wget.php
Created April 12, 2023 06:42
PHP - Download file using "wget"
<?php
function __callURLinBackground($url) {
exec("wget -bqc ".$url." -P /var/www/html/", $output, $result_code);
echo $output;
echo $result_code;
echo '<pre>';print_r($output);
echo '<pre>';print_r($result_code);
echo 'Running in background';
}
// call a URL in background
@prashantdsala
prashantdsala / example.module
Created April 12, 2023 06:37
Drupal - Alter views query and add where conditions
<?php
/**
* Implements hook_views_query_alter().
*/
function mymodule_announcements_views_query_alter(Drupal\views\ViewExecutable $view, Drupal\views\Plugin\views\query\QueryPluginBase $query) {
// Alter annoucements views.
if (($view->id() == 'announcements')) {
if ($view->current_display == 'page_announcements' || $view->current_display == 'block_announcements') {
$current_user_id = \Drupal::currentUser()->id();
$user_service = \Drupal::service('my_service.user');
@prashantdsala
prashantdsala / interfaces.php
Created March 21, 2023 09:50
Example of implementing interfaces in PHP
<?php
// Define the interface for a payment gateway
interface PaymentGateway {
public function processPayment(float $amount): bool;
}
// Define a class for a credit card payment gateway that implements the PaymentGateway interface
class CreditCardGateway implements PaymentGateway {
private string $apiKey;
@prashantdsala
prashantdsala / traits.php
Created March 21, 2023 09:44
Traits example in PHP
<?php
// In this example, we define a trait called Greetings which contains two methods: sayHello() and sayGoodbye().
// We then define a class called Person and use the Greetings trait within it using the use keyword.
// This allows the Person class to have access to the methods defined in the Greetings trait.
// We create an instance of the Person class and call the sayHello() and sayGoodbye() methods,
// which output "Hello!" and "Goodbye!", respectively.
trait Greetings {
public function sayHello() {
echo "Hello!";
}
@prashantdsala
prashantdsala / example.php
Last active March 21, 2023 07:26
How to load media entity and get the uploaded file details from media entity programatically in Drupal
<?php
use Drupal\media\Entity\Media;
use Drupal\file\Entity\File;
use Drupal\Core\Url;
// Load the media
$media_id = <Replace with the id of media entity>;
$media = Media::load($media_id);
// Get file id from the media.
@prashantdsala
prashantdsala / file-download.php
Last active March 21, 2023 07:05
PHP script to directly download any file type from external URL using cURL
<?php
/**
* Generic function to direct download any type of file.
*/
function directDownloadAnyFile($file, $newfilename = '', $mimetype='', $isremotefile = false) {
$formattedhpath = "";
$filesize = "";
@prashantdsala
prashantdsala / splat_operator.php
Last active March 10, 2023 05:29
Splat/Variadic operator (3 dots ...) in PHP
<?php
// The splat operator (also known as the variadic operator) in PHP is represented by three dots (...)
// It allows you to pass an arbitrary number of arguments to a function or method.
// Here's an example of using the splat operator in PHP:
function addNumbers(...$numbers) {
$sum = 0;
foreach ($numbers as $number) {
$sum += $number;
@prashantdsala
prashantdsala / named_arguments.php
Created March 10, 2023 05:20
Named arguments in PHP 8
<?php
// Named arguments were introduced in PHP 8,
// and they allow you to pass arguments to a function or method by specifying the name of the argument
// rather than relying on the order in which the arguments are defined.
// Here's an example of using named arguments in PHP:
function createUser($name, $email, $age) {
echo "Name: $name <br>";