Skip to main content

Things You Must Know Before Trying Forms In Drupal 8.


 You Should Invest In Forms

                     What does your customer think?  What do they looking for? will decide the success of any business.

   In a digital marketing, Most of the customer requirement is gathered through forms. So its

  essential  to spend some  time with forms


Example : a user can search a particular product using the search form on an e-commerce website.

Form API in Drupal 8 


        As we know already Drupal use forms for most of the administrative site building.

Drupal 8 follows object-oriented style of programming with the integration of symfony .


Based on the purpose of the form, it can inherit the basic properties and methods of the below classes.


1.Config Base
2.FormBase
3.ConfirmBase

 Note: Routing configuration is done through the yml files in drupal 8

When the user hits the valid url in the browser , Major Responses are

1.Page Content
2.Forms
3.Map..etc.

Basic Routing Configuration for Form

Internal path-machine-name
       Path: url of the path
       Default
       Form:Name of the  Form class with the name space
      requirements:
   _permission: 'access content'

Example:
  user.multiple_cancel_confirm:
  path: '/admin/people/cancel'
  defaults:
    _form: '\Drupal\user\Form\UserMultipleCancelConfirm'
    _title: 'Cancel user'
  requirements:
    _permission: 'administer users'


To know more about routing  options Check this  Link Routing In Drupal 8

In this Post we will examine Basic Form 




Namespace
         namespace is like a pointer to a file path where you can find the source of the function you are working with.


Use statement
      The ability to refer to an external fully qualified name with an alias, or importing, using the use operator


FormBase , FormStateInterface are the two classes  which defines most of the basic
properties of any form . So it is essential to extend your form with FormBase Class


1.BuildForm -  is a function which is defined in formbase class, it is mainly used to describe the form elements

2.getFormId - It returns the form id

3.validateForm -  This function is used to perform some of the server side validation before submitting to the server or database

4.submitForm  - Its is used  to retrieve the submitted values and made the other  logics with the submitted dat


Here i have covered very basic example and explanation . Follow the drupal org documentaion to more information.
  



Comments

Popular posts from this blog

Comparison Between Drupal 7 and Drupal 8

Well in the learning process of drupal ........, This is my second post..if you missed previous article please refer the following  link. What is drupal and what is cms As i said in my pervious article ,drupal is an open source framework .We can easily download it from  Drupal  official link. As a extensive contibution of drupal community we are getting improved versions of drupal. Currently   Drupal 7 and Drupal 8 is activily maintained by the community. Lets find out the major difference between drupal 7 and drupal 8 Structure 1.Drupal 7 is based on procedural programming 2.Drupal 8 is  mainly focused on object oriented programming Template engine 1.Drupal 7 is based on the  php template engine 2.Drupal 8 is based on  twig template engine Routing 1.page callback functions are utilised  for each every page request   in drupal 7 2. Yml files are used to handle the routing configuration of the each p...

Why drupal is not fully object oriented ?

You can see module hooks are still in a procedural way to  utilize a dependent service  That's why we have a static  Drupal Class , it can get a service in a procedural context. How to access a service in module hooks? Drupal::service('{service id}') or  service accessors like Drupal::request(), Drupal::currentUser(), Drupal::entityManager(). It is providing a uniform way of getting any services inside hooks and it eases the transition from procedural code to injected oops code. How a container get services in drupal?  The container is built by the kernel  and passed to the static Drupal Class and the container gets all the services from the system by the below methods    1. \Drupal\Core\CoreServiceProvider    2.  the service providers of enabled modules     3. any other service providers defined in $GLOBALS['conf']['container_service_providers']. How you can improve the dependent service access from module ?  fu...