Posts

Showing posts from September, 2019

Ways to Pass Parameters to Laravel job.

There are 2 ways to pass parameters to a dispatching job in Laravel. First is simply call dispatch() or dispatchNow() as per requirement on your Job class like calling a static method on a class: YourJob::dispatch(argument1, argument2, argument3); Second is simply pass arguments while creating an instance/object of Job class then pass the object to dispatch method(always available in the controller) like: $this->dispatchNow(new YourJob(argument1, argument2, argument3)); The arguments will be available in the constructor, can you assign them to class local variable properties and use anywhere in Job class. Let consider below example job: <?php namespace App\Jobs; use Illuminate\Bus\Queueable; use Illuminate\Queue\SerializesModels; use Illuminate\Queue\InteractsWithQueue; use Illuminate\Contracts\Queue\ShouldQueue; use Illuminate\Foundation\Bus\Dispatchable; class Testjob imple...

Important things every developer need to know about Database Indexing

Assuming you know the basics of Database and know the definition of indexes used in DB, here are some important things about Database indexes about which every good developer must aware of: DB Indexing is used to read data faster, but it makes writing slower. Indexes use in-memory data structures. Indexes use B-Tree (Balanced Tree) data structure to store data and use Binary search for reading/searching. It always saves corresponding DB internal row-id (not table PK) with every indexed node in the B-tree It is not good to add an index to each column of a table. If you have applied index on certain column but in query use any function on an indexed column, the index will not help at all. You can create a combined index on multiple columns. Order matters as per query need. To understand the use of indexes or to know if the query is actually taking the benefit of your index on your column use Explain. Explain give you the execution plan of the query. Explain give you info abou...

Ubuntu Terminal - Commands for User Groups, Directory, Permissions and Ownership

When you are working on Ubuntu/Linux OS, some important command given below can help you in managing Users groups and directories. 1. Check user-groups, a user account belongs to: $ groups 2. Add new user-group $ sudo groupadd user-group-name 3. Add user-account to a user-group: $ sudo usermod -a -G examplegroup exampleusername OR $ usermod -a -G group1,group2,group3 exampleusername 4. Change user account’s primary group: $ usermod -g groupname username 5. To change ownership of a folder: $ sudo chown -R www-data:www-data /var/www/ OR $ sudo chown -R $USER:$USER /var/www/example.com/public_html $USER will take account of the current user logged in. 6. Check permissions to specific directory: $ ls -ld /directory/ 7. Link command (creating shortcut): $ sudo ln file1.txt file2.txt or we can also use ln to create symbolic links with the -s option $ sudo ln -s file1.txt file2.txt

Create Virtual host (vhost) in linux - Ubuntu 18.04, 16.04

Virtual Host is a well-known term in web development. Generally, the remote server where we keep your website code/files is called a hosting server. Similarly, when are working on local system with any installed server like Apache or Nginx, it acts as a host. So to access the website on our system with any a custom domain name like 'yourproject.com' instead of something like 'localhost/yourproject', which sometimes create a problem when accessing relative URLs to base URL of the project. So the best way to create virtual host your local system which we work as the remote website works with a domain name. To Create Virtual Hosts(vhost) for apache2 server in Linux/Ubuntu using terminal follow below steps: 1. Copy default site conf file with the name of the your-website name i.e. laravel-demo.com.conf $ sudo cp /etc/apache2/sites-available/000-default.conf /etc/apache2/sites-available/ laravel-demo .conf 2. Open new conf file into an editor with root permission: ...