What’s new in Drupal 8 and how you can contribute


Hey all now days Drupal community are very hard at work in developing Drupal 8 . If you are passionate about Drupal and want to contribute to Drupal 8 and not finding any source to start then this is blog can help you.

What we will cover in this blog :-

  1. How to take Drupal 8 stable core to your local machine and start developing with it .
  2. What’s new in Drupal 8 ?
  3. Some explanation of changes with code.

Below are the steps to setup Drupal 8 stable core to local machine . I am hoping you have GIT installed in your machine .

  1. git clone --branch 7.x http://git.drupal.org/project/drupal.git
  2. cd drupal
  3. git checkout 8.x

If you want to go back to your D7 version just do ” git checkout 7.x ” . For updating your Drupal 8 core do “git pull ” . It will update your Drupal 8 code instance .

You can also do if you just want D8 code base . idea for above things are just to understand the code architecture of D7 and D8 . Below you will only get D8 code base instance .

1. git clone –recursive –branch 8.x
http://git.drupal.org/project/drupal.git
2. cd drupal

A useful link is also http://drupal.org/node/3060/git-instructions/8.x

Now you can start building your custom modules , Themes for Drupal 8 .

In Drupal 8 till now what community has updated has many changes in core . Below is link of list of changes in Drupal 8 .

http://drupal.org/list-changes/drupal

You can check out each changes and start writing your code with Drupal 8 .

Below are some other links which give you information about Drupal 8 development , roadmap , Documentation , code , contributors , IRC channels , meeting times etc.
This is link to video which drive you through some custom code development in Drupal 8 .
Some other links for understanding architecture and developing in Drupal 8 :-

Menu change example :- In D8 menu links are converted into entities . So in order to create new menu in Drupal 8 you can do like this .

<?php
$menu_link = entity_create('menu_link', array(
'link_title' => t('Home'),
'link_path' => '<front>',
'menu_name' => 'main',
));
$menu_link->save();
?>
Saving menu links with Drupal 8 :-
<?php
$menu_links = entity_load_multiple_by_properties('menu_link', array('link_path' => $link_path));
foreach ($menu_links as $menu_link) {
$menu_link->link_title = t('New link title');
$menu_link->save();
}
?>
Some changes are also happens with hooks like :-
hook_menu_link_alter() has been replaced by hook_menu_link_presave()
hook_translated_menu_link_alter() has been replaced by hook_menu_link_load().
I hope this blog is helpful for you . Please feel free to comment and send your queries to me .

Setup your Drupal and ftp in the Amazon EC2 micro instance


In this blog i will drive you through setting up Drupal project instance on  Ec2 micro instance of AWS and setting up ftp on your Drupal instance. Before this , of course you have to registered with AWS which is straight forward .

So , what we will understand from this blog :-

  1. Choosing OS and assigning some security rules on our instance .
  2. How to access our instance and play around it ?
  3. Setting up LAMP on our AWS micro instance
  4. Setting up ftp on AWS micro instance
  5. Managing your Drupal project using ftp connection using filezilla

Once you  are registered with AWS you have to login into your account . Among the AWS services just click on EC2 link which is nothing but a virtual server in the cloud . It will redirect you to EC2 dashboard where you can mange all your instance . Now for creating new instance follow below steps:-

  1. Just click on Launch instance select Classical wizard and click continue .
  2. Now you have to select Amazon Machine Image (AMI) from one of the tabbed lists below by clicking its Select button .
    Lets say we select Ubuntu 12.04 LTS .
  3. Next leave default settings except just select micro instance from the instance type because its free to use and click continue .
  4. Next again leave default setting and click continue .
  5. Next again leave default setting and click continue .
  6. Now you have to give name of your key and value . I recommend give key value name more sensible with your project and click continue .
  7. Now select creating a new key pair as we are new we don’t have exist key pair . Give name to your key pair file it should make sense with regards to your project . Download your keypair.pem file and save at a safe place because we need this file later .
  8. Next select create a new security group . Here we will assign some security rule and enable HTTP , ssh and ftp connection to our instance . HTTP port range is 80 , ssh port range is 22 , for ftp select custom TCP rule and give port range 21-22 . About source you can give any IP range as you need or just leave default for now.
  9. Just click continue and launch instance . Your instance will be running in some time as AWS will take some time to run your instance .

Now our EC2 micro instance is running . You can check out from your dashboard .

Now we setup LAMP in our Ubuntu 12.04 LTS instance . For this we access our Ubuntu instance from terminal and setup LAMP in that. Below are the steps to access and setup your LAMP in Ubuntu 12.04 LTS instance .

  1. Open your terminal and go to the directory where you stored your key pair file .pem file then run this command into your terminal sudo ssh -i file_name.pem ubuntu@ec2-40-90-193.compute-1.amazonaws.com .
  2. It will give you Ubuntu prompt in your terminal . You can understand like this that now you are logged in into your Ubuntu machine and you can do anything over their . The main thing here is you have to run all commands with “sudo” or as a root user which works on file system directory .
  3. In order to setup LAMP we will install three packages in it . Run these command from terminal :-
  • sudo apt-get install apache2
  • sudo apt-get install mysql-server
  • sudo apt-get php5 php-pear php5-mysql php5-suhosin

That’s it your LAMP environment is ready . You can check it by navigating your instance URL that is for example look like this ec2-43-23-32.compunte.aws.com in browser . It will give you message Localhost is working something like that .

Till here we got our LAMP environment running into our EC2 instance . Now we install our Drupal 7 instance in it . Here in Ubuntu instance we don’t have any ftp connection with ftp client or server. So we can use SCP for taking Drupal tarball from our local instance or we can use wget utility of Linux to download Drupal from its URL . Below are steps to install Drupal 7

  1. cd /var/www/
  2. wget  http://ftp.drupal.org/files/projects/drupal-7.12.tar.gz
  3. tar xvf drupal-7.12.tar.gz
  4. mv drupal-7.12 drupal

Below is a link which can tell you how to install Drupal in Linux . Just follow all those steps .

http://drupal.org/documentation/install/developers

When you setup with your mysql database and Drupal configuration then just browser link like for example :

http://ec2-43-23-32.compute-1.amazonaws.com/drupal/

It will take you to your Drupal site .

Now we will see how to setup ftp on Drupal instance .Why we need ftp for Drupal instance . In order to work on Drupal we have to use many modules ,themes  and libraries . So we have to upload those things on site . we can achieve this with SCP but that will be more difficult because you have to do via command line .  Here we will see how to setup Filezilla ftp on Drupal site which is on AWS EC2 . Below are the steps to setup filezilla as a ftp client .

  1. Install filezilla  into your local system :- sudo apt-get install filezilla
  2. Now open filezilla click on file > site manager
  3. Enter the details of your site here like :-
  • HOST – ec2-43-23-32.compute-1.amazonaws.com
  • Port– 22
  • Protocol – SFTP(SSH file transfer protocol )
  • Logon Type – Normal
  • User – ubuntu
  • Password – ubuntu . Then click on ok don’t click on connect this time .
  1. Now click on Edit> Settings > SFTP and addkeyfile . Navigate your .pem file here . It will ask you to convert .pem file just select ok . Now filezilla have your instance credentials to connect and everything is good to connect to your Drupal instance .
  2. Now click on file > site manager > connect

Now you can transfer all files from your local to Drupal instance .

I hope you enjoyed this blog. Please feel free to comment and send queries to me .

Reference :-

https://aws.amazon.com/documentation/

http://library.linode.com/lamp-guides/ubuntu-12.04-precise-pangolin

Thanks to Sonali , Anirudha , Chetan for reading draft of this