An introduction to new php 7 book

php 7

php 7


I had started writing a well documented book on PHP 7 in the month of March but I’d to leave the project unfinished as situation demanded.
I’m eager to go back to my unfinished job. Before that I thought it would be good for my readers to give them a glimpse of how I had started it.

Note from Author

I always love to write for the beginners. I love the innocent moments of bringing few new things to my dearest readers. And this time I’ve done it by taking a completely different approach. You build web applications and learn php 7 simultaneously.
Continue reading “An introduction to new php 7 book”

how to become a good wordpress developer

It’s not at all difficult to become a good wordpress developer.

Wordpress developer

WordPress developer


People often make a bad mistake. They think WordPress is only a simple, user friendly blog-engine. They use WordPress as a blogger not as a web programmer. There must be some misunderstanding or a set of thinking-patterns that is actually a wrong action attributable to bad judgment. If you want to become a good wordpress developer, you mustn’t make this mistake.
Continue reading “how to become a good wordpress developer”

How to become a good PHP developer

I want to answer this question from a beginner’s perspective. You’re reading this article because you’re a PHP developer with little knowledge and you want to make ‘coding as your forte’.

php developer

php developer

Closed or Open?

I’ve seen two sides of server side scripting. I had started learning PHP and MySQL much before I tried coding in C# and ASP.NET. I had not been developing with ASP.NET for long because I’d to leave it. Was it destiny? Actually I didn’t like the closed source. That was the real reason. Besides it was not my profession. I was not a professional PHP developer at the beginning. I was a data-journalist who wanted to be an Author and Ethical Hacker.
Continue reading “How to become a good PHP developer”

Beginning Laravel: A beginner’s guide to application development with Laravel 5.3

Learn Laravel quickly and efficiently. Add more power to your PHP skill. This book will guide you to learn one of the most popular PHP framework.
begiining-laravelBeginning Laravel

With Real World Code Example

Learn about dependency injection, interfaces, service providers, SOLID design, and more with practical and real-world code examples.
Continue reading “Beginning Laravel: A beginner’s guide to application development with Laravel 5.3”

Interaction between PHP and WordPress

Does WordPress really have interaction with PHP?

WordPress is a content management system that very heavily depends on PHP programming language. They interact with each other in every step. If you want to follow this interaction between wordpress and PHP, then you must have a little bit working knowledge of PHP. To understand this interaction between them, you need to understand few PHP concepts first. Specially conditionals and loops, functions, array and finally classes and objects.

Few words for PHP and WordPress developers

Do you want to become a successful PHP and wordpress developer – all together? if that so, then this series of tutorials are for you. The first thing you need to understand is the relation and interaction between PHP and WordPress. How PHP and WordPress interact with each other? What is the relation? What PHP topics you should learn?
You may consult my PHP Articlesto get an idea.
Interaction between php and wordpress//embedr.flickr.com/assets/client-code.js

Should I be an expert in PHP?

To answer that briefly in the first paragraph I should say, you need not master PHP to handle wordpress efficiently. Yes, it’s always good to learn and dig deep into the subject but your primary concern is WordPress. You want to master WordPress. And to that you need to learn few PHP things first.
For the next big jump, you need to dig deep in PHP also. And that will always remain a plus for your web development preparation. You may read some Advanced PHP 7 Articlesin this regard.

The first interaction between PHP and WordPress.

Consider a PHP array and try to figure out how it comes to help when you build up a customized wordpress page. An output of array follows first where I have used few names. To show their interaction I will later show you how wordpress categories can be produced through an array.

Array
(
[0] => Mona
[1] => Babu
[2] => Pota
[3] => Gopal
[4] => Array
(
[0] => Buddhu
[1] => Tutul
[2] => Tapas
)

)
Next we’ll see the code:
//after php 5.3
$frienfds = ["Mona",
"Babu",
"Pota",
"Gopal",
["Buddhu",
"Tutul",
"Tapas"
]
];

Can you associate this type of array with any wordpress code you’ve seen so far? Actually in real life of using wordpress we can use categories in place of names.
In the next wordpress example we’ve just done that to prove thier interaction.

Let us consider a wordpress array this time.

In this wordpress array we try to make sure few things first. In the ‘key’ part we’ve kept the wordpress key properties and in the value part we’ve set the values.

$args = array(
'taxonomy' => 'category',
'orderby' => 'name',
'show_count' => 3,
'pad_counts' => 0,
'hierarchical' => 1,
'title_li' => 'Categories'
);

wp_list_categories( $args );

 

This will give us a nice output of all our categories we’ve set so far for our wordpress site. The positive side of this usage is it will automatically update when you add more categories. Not only that, it’ll also automatically manipulate the posts from every category.
We can explain it this way.
Whenever you write a post, it may be assumed that you’ve done some research and set your categories accordingly.

Consider the output

Categories
general (1)
php (1)
wordpress (1)

How I joined multiple Bootstrap themes with my official WordPress site

I thought I should write down this without delay and share with my readers. These are bits and pieces of my experiences of writing my official website sanjibsinha.com. It was a kind of trial and error method that I had always expected that, well – touch wood, it’d survive somehow.
And it survived the experiments. Google started indexing it and I think the time has also come to play with Google analytic.
Let me finish it very fast and start from the very beginning.
I decided to inject multiple bootstrap CSS styling in my website. It’s a kind of bootstrapping wordpress.
As you know, when you start building a wordpress site from scratch you need few files at the very beginning. They are – style.css and few more PHP files like index, page, home, header, footer, sidebar etc.
I decided to make the front page a static page so I injected a ‘front-page.php’ file in that beginning procedure.
As of now I am keeping three styles – two of them are open source bootstrap theme and the other one is the mystery (please download it from my github repository).
The first step is – make your default style intact so that it does not break.
My ‘style.css’ code:
@import url('css/font-awesome.min.css');
@import url('css/bootstrap.min.css');
@import url('css/animate.css');
@import url('css/style.css');

body {

}

Next get the link in the ‘header.php’ file:

bloginfo('stylesheet_url');

I don’t want the ‘Home’ navigation in my first page menu bar so just excluded it with a simple code:
wp_list_pages(array('title_li' => '', 'exclude' => 4));
Remember wordpress keeps everything as ‘post’ inside database. My home page post id is 4 and I’m excluding it from the first page navigation.
You know the other wordpress pages more or less follow this same logic:

if ( have_posts() ) : while ( have_posts() ) : the_post();
I decide to get the permalink, time, title, and content after that so the functions are easy:
the_permalink();
the_title();
the_time('l, F jS, Y'); //you can change the format, please search in the codex
the_content()

You should also keep an error message if something goes wrong with your code.
_e('Sorry, there are no posts.');
As I said before: there are three themes as of now. So I need two more template files. One is for Blog and the other, the custom one is for any other purposes.
You need ‘header-blog’, ‘footer-blog’, ‘header-custom’, and ‘footer-custom’. And in the related template file don’t forget to write like this:
get_header('blog')
get_header('custom')

Besides these simple routine I decided to show one category in my custom styling. I’ll write this part in detail.
Finally my website looks like this:

The Home page:

The blog Page:

The Contact page:

The archive page:

And finally I decided to show my ‘PHP’ category posts in the custom styling:

So this is it. For full code please visit my Github repository:

GITHUB

How to write one WordPress Plugin in One minute!

WordPress Plugins are simply fabulous. There are thousands of free plugins available over the Internet that help developers building awesome web applications.
I am just going to show you, how to write one plugin in one minute.

    The first step: write a PHP file ‘init.php’ in ‘wp-content/plugins’ directory through your C-Panel file manager.
file-manager

file-manager

    Here is the code:


/**
* @package Hagudu
* @version 1.0
*/
/*
* Plugin Name: Hagudu
* Plugin URI: http://sanjibsinha.com/howto
* Description: It can do anything!
* Version: 1.0
* Author: Sanjib Sinha
* Author URI: http://sanjibsinha.com/howto
* License: GPLv2 or later
*/

function it_can_anything() {

$content = "It can do anything";

return $content;

}

add_filter('the_content', 'it_can_anything');

Once it’s been written it shows up in your wordpress dashboard:

plugin

plugin

Just activate it! Now you can edit it from the wordpress dashboard itself!

It took actually 45 seconds! 🙂

Custom Post Type in WordPress for PHP Developers

Sometimes you need a custom post type in your WordPress application.
Let me explain why you need it first?
Wordpress comes up with two basic types of Posts. One is Post and the other is Page. People often get misguided and think WordPress is just a blog engine and a content management system on a PHP platform.
This concept is wrong.
Wordpress is a sleeping giant whom you need to poke and tweak to get things done on your whim. Just make it talk, it’ll actually sing! Such is the power of WordPress.
In default Pages or Posts you may add plenty of contents and you can also categorize them, no problem.
But a custom post type is the symbol of your freedom. You’re going to do something with it that simple Page and Post could not do. You can extend your Custom Post Type to eternity. Unthinkable and unbelievable are the possibilities.
The process is extremely simple.
Add this code to your ‘functions.php’:

// ADD CUSTOM POST TYPE
add_action('init', 'create_post_type');
function create_post_type() {
    
    register_post_type('custom-content',
            array(
                'labels' => array(
                    'name' => __('Custom Content'),
                    'singular_name' => __('Custom Content')
                ),
                'public' => TRUE,
                'has_archive' => true
            ));
    
}

On the left side of your Admin Dashboard panel you get it. Just click and it’ll open. Now you can add any type of content here. Text, Image and Video.
Want to show it on your Home page?
Very simple. On the ‘front-page.php’ add this code:


$args = array( 'post_type' => 'generic-content', 'posts_per_page' => 10 );
$the_query = new WP_Query( $args ); 
if ( $the_query->have_posts() ) :
while ( $the_query->have_posts() ) : $the_query->the_post();
the_title(); 
the_content(); 
wp_reset_postdata();  
endwhile; else:
_e( 'Sorry, no posts matched your criteria.' );
endif;

Besides on your front page you want to show the Custom content on a dedicated page. Create a ‘single-custom-content.php’ page and just paste the code of your ‘page.php’. You need to get the title and content, so it’s not difficult at all.

Why WordPress for PHP Developers?

For PHP developers who want to create applications quickly but efficiently, WordPress is the best choice.
I had worked with other PHP frameworks like Laravel and Codeigniter before and found them extremely time consuming. I tasted Drupal also.

In web development you ultimately handle with content or data. And this volume of data is becoming enormous with the passage of time. It has many titles, categories, sub-categories, sub-sub-categories and you may dig deeper.

This is big data.

The simplicity of WordPress makes this job absolutely fun with little coding. If you love to code then there is Laravel. You’ll have plenty of chances to code but it’ll take time.

An application that takes one month to be formed in Laravel, may take less than one week in WordPress.

I give you a very simple example.

It took less than one hour to build a full fledged web application with WordPress where I used four different themes. I just Bootstrapped them. look at the pages first!

The first one is Home page.

why wordpress

why wordpress

The second one is a Sample Page.

why wordpress

why wordpress

The Third one is a Generic content (Here your choice is simply endless)

why wordpress

why wordpress

And Lastly for any news oriented posts I chose a completely different styling with a sidebar where I can add any widgets any time.

why wordpress

why wordpress

You just cannot imagine how simple the total operation was! It took less than one hour with few WordPress functions like this:

get_header(); get_footer(); get_sidebar(); bloginfo('stylesheet_url'); wp_list_pages(array('title_li' => '', 'exclude' => 4));


May be I’m missing one or two functions. But It’s true that it really does not take much. For getting contents on your page or post, the main WordPress functions you need are also very simple.
They are like this:

if ( have_posts() ) : while ( have_posts() ) : the_post();
the_permalink(); the_title(); the_time('l, F jS, Y'); the_content(); 
endwhile; else:
_e('Sorry, there are no posts.');
endif;

The ‘functions.php’ file is little bit longer, but less than any PHP framework single page code!


// ADD CUSTOM POST TYPE
add_action('init', 'create_post_type');
function create_post_type() {

register_post_type('generic-content',
array(
'labels' => array(
'name' => __('Generic Content'),
'singular_name' => __('Generic Content')
),
'public' => TRUE,
'has_archive' => true
));

}

function post_movie_scripts() {

if(is_post_type_archive('movies')){

wp_enqueue_style('customstyle', get_template_directory_uri(). '/custom/custom-style.css', 'style');

}

}
add_action( 'wp_enqueue_scripts', 'post_movie_scripts' );

function startboot_scripts() {

wp_register_script('my_amazing_script', get_template_directory_uri() . '/startboot/vendor/jquery/jquery.min.js', array('jquery'), true);
wp_register_script('my_amazing_script', get_template_directory_uri() . '/startboot/vendor/bootstrap/js/bootstrap.min.js', array('jquery'), true);

wp_register_script('my_amazing_script', get_template_directory_uri() . '/startboot/vendor/scrollreveal/scrollreveal.min.js', array('jquery'), true);
wp_register_script('my_amazing_script', get_template_directory_uri() . '/startboot/js/creative.min.js', array('jquery'), true);

wp_register_script('min', get_template_directory_uri() . '/custom/lib/jquery/jquery.min.js', array('jquery'), true);
wp_register_script('bootstrap', get_template_directory_uri() . '/custom/lib/bootstrap/js/bootstrap.min.js', array('jquery'), true);

wp_register_script('new-age', get_template_directory_uri() . '/custom/js/new-age.min.js', array('jquery'), true);

wp_enqueue_script('startboot_script');

//wp_enqueue_style('news', get_template_directory_uri(). '/blog/blog-style.css', 'style');

if (is_page(4)) {

wp_enqueue_style( get_template_directory_uri(). '/style.css', 'style' );

}

elseif (is_page(array(2))) {

wp_enqueue_style('customstyle', get_template_directory_uri(). '/custom/custom-style.css', 'style');

}

elseif (is_page(7)) {

wp_enqueue_style('customstyle', get_template_directory_uri(). '/custom/custom-style.css', 'style');

}

/*
elseif (is_page(array(14))) {

wp_enqueue_style('animate', get_template_directory_uri(). '/hydrogen/css/animate.css', 'style');
wp_enqueue_style('icommon', get_template_directory_uri(). '/hydrogen/css/icomoon.css', 'style');
wp_enqueue_style('magnific', get_template_directory_uri(). '/hydrogen/css/magnific-popup.css', 'style');
wp_enqueue_style('salvattore', get_template_directory_uri(). '/hydrogen/css/salvattore.css', 'style');
wp_enqueue_style('style', get_template_directory_uri(). '/hydrogen/css/style.css', 'style');

}
*/
else {

//wp_enqueue_style('customstyle', get_template_directory_uri(). '/custom/custom-style.css', 'style');

wp_enqueue_style('news', get_template_directory_uri(). '/blog/blog-style.css', 'style');
}
}

add_action( 'wp_enqueue_scripts', 'startboot_scripts' );

function boot_scripts() {

if (is_page(16)) {

wp_enqueue_style('WP Bootstrap', get_template_directory_uri(). '/bootstrap/boot-style.css', 'style');

}

}
add_action( 'wp_enqueue_scripts', 'boot_scripts' );

if ( function_exists('register_sidebar') )
register_sidebar(array(
'before_widget' => '',
'after_widget' => '',
'before_title' => '

',
'after_title' => '

',
));

register_taxonomy( 'sample-taxonomy', 'post', array( 'label' => 'Sample Taxonomy'));

Look at the main ‘style.css’ code, this is unbelievable:

@import url('startboot/vendor/bootstrap/css/bootstrap.min.css');
@import url('startboot/vendor/font-awesome/css/font-awesome.min.css');
@import url('startboot/vendor/magnific-popup/magnific-popup.css');
@import url('startboot/css/creative.min.css');

body {

}

.home-content {

margin: 10px;
padding: 10px;

}

.footer-content {

}

The Other related style-sheet coding are equally simple and elegant.

I hope this post will help PHP developers to decide which they really need to work faster to give more output in less time.

I know your job is demanding.