SEC S20W5|| Sharing resources and OOP using PHP Part -3

Hello everyone! I hope you will be good. Today I am here to participate in the contest of @starrchris about the PHP. It is really an interesting and knowledgeable contest. There is a lot to explore. If you want to join then:



Join Here: SEC S20W5|| Sharing resources and OOP using PHP Part -3



Section 1

Sharing resources and OOP using PHP.png

Designed with

Explain in detail what Object Oriented Programming is, what they are used for and some of their use cases.

Object oriented programming is a programming pattern which revolves around the concept of objects. It is often written as OOP. Objects are the instances of the classes. They can contain both data and methods. Data is represented as the attributes of the objects. And the methods represent the functions that are operated on the data. OOP is useful for the modularity and reusability. It increase the maintainability of the code by organizing the code in a good way. It organize the data in discrete objects. These discrete objects can be managed easily and we can manipulate these objects.

Core Concepts of OOP

Classes and Objects

  • Class: Class is a blueprint for the creation of the of the objects. In the class the attributes and methods are defined of the object. We can write the functions according to the attributes and then we can call those functions.

  • Object: It is the instance of a class. It contains real values instead of a variable. If we are going to cal any function of the class then first all we create object of the class. Then with the help of the object we can call function of the class.

Encapsulation

  • Encapsulation is an important concept of object oriented programming. It is the building of data and methods. And this data operates on the data within one unit or class. It does not allow direct access to some components of the objects. And it helps to prevent misuse of the components.

  • Example:Let suppose we have a class BankAccount. It may have some private attributes such as balance and methods to deposit or withdraw funds.

Inheritance

  • Inheritance is another important and widely used concept of object oriented programming. It allows a new class to inherit the properties and behaviours from another class which is already existing. WE can say the already existing class as base class. It allows reusability of the code and creates relationship between the classes.

  • Example:If a class Animal is a base class. The new classes Dog and Cat can inherit the base class Animal. These classes can obtain the attributes and methods of the base class as well as they cal also introduce their own.

Polymorphism

  • Polymorphism allows methods to do different things based on the object it is acting upon even they have the same name. It is used with the overriding method and overloading method in the derived classes. It can have same method name but different parameters.

  • Example: A method makeSound can be defined in the base class Animal. But it behaves differently in the derived classes such as Dog and Cat.

Abstraction

  • Abstraction is the concept of hiding complex implementation details and showing only the necessary things of an object. It helps to reduce programming complexity. And it increases the efficiency of the code.

  • Example:An interface can define a set of methods without specifying how they are implemented. They allow different classes to implement those methods in their own way.


Use Cases of OOP

OOP is widely used in different applications and industries because of its advantages. It helps to manage the complexity and we can reuse the code again and again with the help of OOP without writing the same code again. Here are some common uses of object oriented programming:

  • Software Development
    Most of the modern programming languages such as Java, C++ and Python support the principles of OOP. It makes OOP a standard approach in the software development. It is used is developing desktop applications. It is also used in the web applications and mobile applications.

  • Game Development
    OOP is commonly used in game development. It is used for modeling real world entities such as characters, items and the environment. Each entity can be represented as an object with its own attributes such as health or high score and behaviours such as movement or interactions.

  • Graphical User Interfaces
    Graphical User Interfaces such as buttons, windows or menus can be defined as objects. It allows easy management of user interactions as well as visual elements in the applications.

  • Database Management
    Object relational mapping or ORM tools use object oriented programming concept. They facilitate interaction between object oriented programming languages and relational databases.Classes represent database tables and similarly objects represents rows.

  • Simulation and Modeling
    Object oriented programming is used in software simulation. It simulates the software to design real world systems. It allows for the representation of different entities and their interactions in a controlled environment.

  • Artificial Intelligence (AI)
    Object oriented programming is used in artificial intelligence applications. It is used to create modular and reusable code components for the different artificial intelligence tasks such as natural language processing, machines learning models and neural networks.

  • Web Development
    There are different frameworks which use object oriented programming. These include Django, Ruby on Rails and Angular. They all use OOP principles to create scalable and maintainable web applications.


Write intensively on what you understand by API, Give five different examples and their use cases.

An application programming interface is a set of rules and protocols. It allows one software application to interact with another. APIs define the methods and data formats that applications can use to communicate with each other. They abstract the complex working of the internal system. And they enable different services, applications or platforms to function together seamlessly.

APIs are designed to simplify the process of developing and integrating new applications. They allow the developers to maintain the functionality of the software systems without rebuilding those capabilities from scratch. They provide a way for the software components to talk with each other in a standardized way. It does not matter whether they are running on the same machine or over the internet.

Key Features of an API

Interface Definition
An API defines a set of functions and procedures. These can be used by other softwares. These methods can be for retrieving or sending the data. These may be for performing the actions or getting information.

Abstraction
APIs allow developers to use the functionality of a system without needing to understand its underlying code or how it works internally. So if is another important and most usable feature m.

Standardization
APIs ensure consistent interactions between applications. They typically follow specific protocols for the interaction. These protocols include HTTP or HTTPS for web APIs and data formats such as JSON or XML to ensure proper communication.

Security
APIs often require authentication. We have to use API keys and OAuth tokens. We can use other authorization mechanisms to ensure that only authorized users and systems can access certain resources. So they make the data secure.

Versioning
APIs are made on the version basis. They allow the developers to use the order versions as well. If a new version occurs with the breaking changes which are not suitable for some software then the developers can use older versions.

Examples of APIs and Their Use Cases

1.Google Maps API

  • What It Does: Google Maps API is very useful and famous API. It provides access to the powerful mapping features of Google Maps. We can use this API to embed maps and for the geolocation. We can use route planning functionality in the applications with the help of Google maps APIs.
  • Use Case: A ride hailing app like Uber can use the Google Maps API. It shows the current location to drivers and customers. It also plots routes and calculates the estimated arrival time.

2.Twitter API

  • What It Does: The Twitter API allows developers to interact with the platform of Twitter. Developers can use this API to send tweets and retrieve user data. It can be used to fetch follow users and search for tweets.
  • Use Case: A social media management tool like Hootsuite can integrate the Twitter API. It allows users to schedule tweets and monitor hashtags. It allows to respond to comments from multiple Twitter accounts in one interface.

3.Stripe API

  • What It Does: Stripe is a payment processing API. This API enables businesses to accept online payments. The API offers the integration of payment gateways into websites or mobile apps. It does not require to handle sensitive payment information directly.
  • Use Case: E-commerce websites like Shopify use the Stripe API. It is used to handle online transactions securely. It enables the customers to pay using their credit cards or debit cards. It also allows payments from digital wallets. And the website of application owner cannot store the card details.

4.OpenWeatherMap API

  • What It Does: This API provides weather data. OpenWeatherMapb API provides current weather, forecasts and historical weather data. It is accessible through various API endpoints.
  • Use Case: A mobile app designed to help people plan outdoor activities. We can integrate this application with the OpenWeatherMap API to display real time weather updates and forecasts. It will provide data based on the user location.

5.YouTube Data API

  • What It Does: The YouTube Data API allows developers to interact with YouTube features with the help of programming. It enables applications to videos. It allows for the searching of content. It helps to manage the playlist. It also gets metadata about the videos and channels.
  • Use Case: A content management platform can use the YouTube Data API. They can automate video uploads and display view statistics. We can also integrate YouTube content into an external website. I use a tool to record the screen and when the recording is completed I can directly upload that video to YouTube channel without manually going to the YouTube and then uploading the video there.

Explain What you understand about local host? What do you understand by web hosting? Give five Advantages and five disadvantages of web hosting and local host.

Localhost

Localhost refers to the local environment on the computer. It is the environment where we can run and test when applications or websites before making them live. It actually our machine which acts as a server. And it can be accessed through the loop back IP address 127.0.0.1. This is useful in development. Because it allows us to test and debug applications without the need for the internet connection or external server.

There are different softwares which we can use to run a website or application on localhost. These are given below:

  • XAMPP, WAMP or MAMP. They enable us to use Apache, MySQL, PHP environments.
  • Node.js, Docker or VMs. They are used for other web technologies or containerized development.

Localhost is commonly used by developers to create a development environment that works as a live server. But it exists only on local machine.


Advantages of Localhost

  1. No Cost: We can run a website or application on localhost freely. Because we use our own computer as the server.
  2. No Internet Required: While using localhost we can run websites offline without internet. It makes development more easy where the internet is not accessible.
  3. Complete Control: We have full access to the server environment. We can modify and change configurations according to our needs. Moreover we can install software as well as troubleshoot without restrictions.
  4. Fast Development and Testing: As in the localhost all files are stored locally. So we can make changes easily and we can see the results instantly. It makes debugging and testing more efficient and effective.
  5. Security for Testing: In the local host there is no risk of outside attacks or data breaches during development. As during the development our websites are more vulnerable to attacks because they are not fully covered with security mechanisms.

Disadvantages of Localhost

  1. Not Publicly Accessible: Websites hosted on localhost are only accessible to the machine of the developer. We cannot share our work with others on the internet. It can be done by using the tools like port forwarding or external services.
  2. Limited Resources: Our local machine resources are limited such as the memory of the CPU. It can be insufficient to simulate and load a heavy and bulky website. And we cannot judge the efficiency of the website.
  3. No 24/7 Availability: Localhost depends on our computer or machine. It cannot be accessed when the machine is off or in sleep mode. As we can access it on a hosted website.
  4. No Professional Support: We are responsible for all troubleshooting, updates and maintenance. Because there is no external hosting provider to assist us.
  5. Limited Testing Environment: While localhost is good for development but it may not fully replicate the real world environment of a web server. And it can lead to bugs or performance issues once the site is deployed live.

Web Hosting

Web hosting is a service that allows us to make websites accessible on the internet. Actually we rent space on the server for our website. And that server is used to store all the necessary files and resources for the website. When a user enters domain name of the website then the hosting provider serves our website to the user via internet.

There are various types of web hosting:

  1. Shared Hosting: In this type multiple websites share the same server resources.
  2. VPS Hosting: These are the Virtual Private Servers where each website gets a portion of the physical resources of the servers.
  3. Dedicated Hosting: In this type a single server is dedicated to the website. It gives us complete control and resources.
  4. Cloud Hosting: In this type the website is hosted on multiple servers. And it allows for more flexibility and scalability.
  5. Managed Hosting: In this type the provider takes care of all technical aspects such as updates, backups and security.

Advantages of Web Hosting

  1. Global Accessibility: Our website can be accessed from anywhere around the world. And it is available to users 24/7.
  2. Scalability: Web hosting allows us to scale up our resources such as bandwidth and storage. It manages as the website grows in traffic.
  3. Professional Support: Most hosting providers offer 24/7 technical support. It helps us to resolve issues quickly.
  4. Enhanced Security: Hosting providers implement robust security measures. These host providers use SSL certificates and firewalls. They use malware detection to protect the website.
  5. Regular Backups: Many web hosting offer backup services. If we face any loss or corruption we can recover the data.

Disadvantages of Web Hosting

  1. Cost: Web hosting services can become expensive. And it affects a lot for larger websites or businesses. Because they need more resources such as dedicated or cloud hosting.
  2. Server Downtime: Web hosting servers can be down. The best hosting providers can also experience server downtimes. And it will lead to unavailability of the website.
  3. Limited Control: Shared hosting environments often limit the degree of control. We do not have complete control over the server configurations and software installations.
  4. Resource Sharing: In shared hosting resources such as CPU, memory and bandwidth are shared with other websites. And it can lead to performance issues.
  5. Security Risks: Indeed hosting providers implement security measures but our website is still vulnerable to potential cyberattacks. These cyberattacks include DDoS or hacking attempts.

Both localhost and web hosting play crucial roles in web development. Localhost is ideal for local development. It helps in local testing and debugging without any cost. On the other hand web hosting is also necessary to make the website live. Both types have their own advantages and disadvantages.


Why do developers use curl, list, and explain all the use cases of curl

cURL stands for Client URL. It is a command line tool and library. The developers use it to transfer data to or from a server. They use different protocols such as HTTP, HTTPS, FTP, and others. It is widely used because it is lightweight and flexible. It supports many different protocols and options for data transfer.

Developers use cURL to interact with APIs and to automate data transfers. They use it to troubleshoot network issues. Its ability to send and receive requests from the command line makes it a powerful tool in the development and testing of web services and APIs.

Why Developers Use cURL

The developers use cURL in different ways. Some of them are given below:

  1. API Testing: cURL is commonly used to send HTTP requests. These requests may be GET, POST, PUT and DELETE. It is used to send requests to APIs during development. It allows developers to test API endpoints directly from the terminal.

  2. Automating Data Transfers: Developers can use cURL in scripts for the automation. They can automate file uploads and downloads to or from servers using FTP, SFTP, HTTP or other protocols.

  3. Troubleshooting and Debugging: cURL can be used to inspect HTTP headers. We can test network connectivity and troubleshoot server issues by fetching data from a URL or endpoint.

  4. Downloading Files: cURL is often used to download files from the internet. We can download directly to the command line. And it neglects the need for a browser.

  5. Making HTTP Requests: Developers can make simple or complex HTTP requests. They can use different methods like GET, POST, PUT and DELETE. They can pass additional options like headers, cookies or authentication as well.


Common Use Cases of cURL

  1. Fetching Data from a URL

    • Use Case: A simple GET request to retrieve data from a URL, such as fetching the HTML content of a webpage.

    • Example:

      curl http://example.com

      This command retrieves the HTML content of example.com and displays it in the terminal.

  2. API Testing and Interaction

    • Use Case: Interacting with a REST API by sending various HTTP methods (GET, POST, PUT, DELETE). Developers can also pass custom headers, authentication tokens, and data payloads.

    • Example (GET request):

      curl -X GET https://api.example.com/resource

      This sends a GET request to the API endpoint and displays the response.

    • Example (POST request with JSON data):

      curl -X POST https://api.example.com/resource -H "Content-Type: application/json" -d '{"name": "John", "age": 30}'

      This sends a POST request with a JSON payload to create a new resource.

  3. File Download

    • Use Case: Downloading files from the internet, which is particularly useful in scripts or automated processes.

    • Example:

      curl -O https://example.com/file.zip

      The -Oflag saves the file with its original name.

  4. Uploading Files to a Server

    • Use Case: Uploading files using FTP or HTTP to a server.

    • Example (FTP upload):

      curl -T localfile.txt ftp://ftp.example.com --user username:password

      This uploadslocalfile.txt to an FTP server using the provided credentials.

  5. Sending Form Data

    • Use Case: Sending data via an HTML form (POST request) to a web server or API.

    • Example:

      curl -d "name=John&age=30" -X POST http://example.com/form-submit

      This simulates submitting an HTML form with form data (name=John and age=30) to the server.

  6. Fetching HTTP Headers

    • Use Case: Inspecting the headers of a response to check things like content type, status codes, cookies, etc.
    • Example:

    curl -I http://example.com

    This command retrieves only the HTTP headers from the server’s response.

  7. Authenticating Requests

    • Use Case: Sending requests to APIs that require authentication, such as OAuth or API keys.
    • Example (Bearer token):

    curl -H "Authorization: Bearer YOUR_TOKEN" https://api.example.com/resource

    This sends an authenticated request with an OAuth bearer token.

  8. Passing Custom HTTP Headers

    • Use Case: Adding custom headers, such as for API key authentication or content type specification.

    • Example:

      curl -H "API-Key: YOUR_API_KEY" https://api.example.com/resource

      This command sends an HTTP request with a custom API key header.

  9. Working with Cookies

    • Use Case: Handling cookies during requests, which is useful for authentication, maintaining sessions, or scraping data.

    • Example (Save cookies to file):

      curl -c cookies.txt http://example.com

      This saves the cookies sent from the server into cookies.txt.

    • Example (Send cookies from a file):

      curl -b cookies.txt http://example.com

      This sends a request with the cookies stored in cookies.txt.

  10. Debugging HTTP Traffic

    • Use Case: Debugging HTTP traffic and responses to see exactly what is being sent and received in an HTTP request.

    • Example:

      curl -v http://example.com

      The verbose option -v is used to show detailed information about the request and response. It includes headers and status codes.

  11. Handling SSL Certificates

    • Use Case: Accessing secure HTTPS websites that require SSL certificate verification or bypassing verification during testing.

    • Example (bypass SSL verification):

      curl -k https://secure.example.com

      This ignores SSL certificate verification, which is useful in certain development scenarios.

  12. Resuming Downloads

    • Use Case: Resuming a file download after it was interrupted.
    • Example:
      curl -O -C - https://example.com/largefile.zip
      The -C - option tells cURL to resume the download from where it left off.

cURL is an incredibly versatile tool used by developers. It serves for numerous tasks like API testing and file transfers. It serves for network troubleshooting and web scraping. It supports multiple protocols. And it allows us to use extensive command options. It has a great ability to automate the interactions of its support for multiple protocols, extensive command options, and ability to automate interactions with web services. And because of all these services it becomes essential in various aspects of development.



Section 2

Host your sign-up page, login page, and the page we created last week on a hosting site. ( Note: Infinityfree or 000webhost host pages for free but you are free to use any site you wish )


image.png

Here I have created my account at InfinityFree. Here I have clicked on the Create Account.


image.png

Here I have chosen a free plan because I do not need high resources for the website. I just need to create simple sign up and login pages. Then we need to click on create now and it will lead to complete the captcha.


image.png

Here we need to choose a subdomain name. And as it is free service so we need to choose a domain extension provided by the infinityfree website.


image.png

Here you can see that the account for my website has created and I can access control panel.


image.png

Here is the control panel of infinityfree website to control the website. Here I can upload my website data.


image.png

Here you can see the option of file manager. I can upload my website files here.


image.png

Here you can see all the required files such as register.html, login.html, register.php, login.php and logout.php are being uploaded.

After uploading all the files my website is now live.

image.png


image.png

Then in order to store the data in the database I selected MySQL Database. It opend a new window for the creation of the database.

image.png

I wrote this query to create a database to store the registration details of the students. As in the previous lecture we built a student registration form. So here again I am using these forms and I need a similar database.

Sign-Up-ezgif.com-video-to-gif-converter (1).gif

Here you can see that my website is completely live after a lot of work and efforts to connect the website and database. The registration and log in form are working smoothly. The registration form have different fields such as name, email, phone number and password. After the registration the database is collection all the data in the table.

And then when the user is trying to log in then the login form is getting the data from the user and then validating it with the stored data after the successful validation it the welcoming the user to the dashboard.


Get news data from a News API of your choice, post the news on your web page.

It is another interesting task to get the news data with the help of the API and sending it to the website to make the website look more interactive and beautiful.

So I will use MediaStack website to get news API. I have created my account at this website because it is necessary to have an account to get API.

After the creation of the account I became able to get the API key and the url for the API. First of all I run the url and it gave me Json response. So it was working fine as the data was being fetched by the API.


image.png

Then I needed to fetch the data on my website and to display it on the screen. So for this purpose I created a new php file such that news.php. I created it in the file manager of infinityfree directly and I wrote the code in the website instead of writing the code in vs code studio.


image.png

After writing the code to get response from the API I wrote code to display it on the screen. So here is the code to fetch the data on the screen.

My news feed screen is working greatly. And it is getting response from the API and then it is displaying the data on the screen.

I tried to get image for the news as well but all the news did not have image url. Only a few one have image and others have null url in place of the image. So it was not looking good so I removed the image and just displayed other attributes. You can access my news feed here.

Steemit.lovestoblog.com


Disclaimer: All the screenshots have been used from InfinityFree otherwise stated.


Here I want to invite @patjewel, @suboohi, and @irawandedy to check this contest and to test my live website especially designed for the Steemit Practice.

Coin Marketplace

STEEM 0.18
TRX 0.16
JST 0.030
BTC 66984.34
ETH 2607.28
USDT 1.00
SBD 2.66