PHP Classes
elePHPant
Icontem

PHP AMP Page Generator: Generate HTML for using as Google AMP site

Recommend this page to a friend!
  Info   View files Example   View files View files (140)   DownloadInstall with Composer Download .zip   Reputation   Support forum   Blog    
Last Updated Ratings Unique User Downloads Download Rankings
2020-03-28 (19 hours ago) RSS 2.0 feedNot enough user ratingsTotal: 208 This week: 5All time: 8,185 This week: 69Up
Version License PHP version Categories
ampgeneratorone 1.0.1GNU Lesser Genera...5HTTP, PHP 5, Performance and optimiza...
Description Author

This package can generate HTML for using as Google AMP site.

It provides several classes that abstract the different types of HTML elements that are usually present in a Web page.

The package can compose the output of the whole page from the output of the objects for each page element and returns the page output as a string or saves it to a given file.

Innovation Award
PHP Programming Innovation award nominee
September 2018
Number 9
AMP (Accelerated Mobile Pages) is a form of delivering Web site pages in a way that is more efficient and pages can be loaded by browsers quicker.

This package can help composing and serving the Web site pages in PHP using the rules of AMP.

Manuel Lemos
  Performance   Level  
Name: Jorge Castro <contact>
Classes: 16 packages by
Country: Chile Chile
Innovation award
Innovation award
Nominee: 8x

Winner: 1x

 

Details

AMPGeneratorOne

The library generates Google AMP sites using PHP by using procedural code.

Build Status Packagist Total Downloads [Maintenance]() [composer]() [php]() [php]() [CocoaPods]()

This application simplifies (via code) the generation of an AMP site. It's easiest to program, just a few of lines of code and that's it.

For example, let's say that you want to add a new section

$secImage= new SectionModel("The Cupcakes","","/image.jpg");
$secImage->buttons[]=new ButtonModel("More Information","#");
$secImage->buttons[]=new ButtonModel("More Information","#","warning");

$amp->sectionImage($secImage,2250,441);

It will generate the next visual:

simple section

How it works?

use eftec\AmpGeneratorOne\AmpGeneratorOne;
use eftec\AmpGeneratorOne\ButtonModel;
use eftec\AmpGeneratorOne\FooterModel;
use eftec\AmpGeneratorOne\HeaderModel;
use eftec\AmpGeneratorOne\HeadModel;
use eftec\AmpGeneratorOne\LinkModel;
use eftec\AmpGeneratorOne\SectionModel;

include "lib/AmpGeneratorOne.php";
$amp=new AmpGeneratorOne("https://www.canonical.com","https://www.canonical.com/amp");
// # 
$amp->startAmp(new HeaderModel("description","title","favicon.ico"));

// # sidebar (optional)
$amp->sidebar($menu); // $menu is an array of /LinkModel()

// #1 head (the top bar)
$amp->head(new HeadModel("",$base."logo.png"),70,70);

// # example section
$amp->sectionFirst(new SectionModel("Title","Description"));

// # footer
$amp->sectionFooter(new FooterModel("Copyright something(c)","See as desktop"));

amp->render(); // you also could generate a file.

result

Tablet version

result

Mobile version

result.jpg)

Mobile version (slider open)

Method __construct

AmpGeneratorOne constructor.

Parameters:

  • $canonical Original url . Example https://www.southprojects.com/somesite (string)
  • $base Original base url without trailing slash. Example https://www.southprojects.com (string)
  • $sidebarColor The background color of the sidebar Example #ffffff,white,rgb(255,255,255) (string)
  • $themecolor .The color of the logo,burger Example #ffffff,white,rgb(255,255,255) (string)
  • $classSidebar. text-primary,text-secondary,text-success,text-info,text-warning,text-danger,text-white,text-black (string) ## Method fixRelativeUrl Fix an url and convert a relative url into an absolute url

Parameters:

  • $url param $url () `php $tmp=$ampgeneratorone->fixRelativeUrlthis(); ` ## Method genStructured It generates the social and seo structure (Twitter card, Facebook OG and Google Schema)

Parameters:

  • $structured param StructureModel $structured (StructureModel) `php $tmp=$ampgeneratorone->genStructuredthis(); ` ## Method startAmp Start to generate an Amp site.

Parameters:

  • $param param HeaderModel $param (HeaderModel)
  • $structured param StructureModel $structured (StructureModel) ## Method sidebar Generates a sidebar.

Parameters:

  • $urls param LinkModel[] $urls (LinkModel[]) `php $tmp=$ampgeneratorone->sidebarthis(); ` ## Method head Generates the header navigation

Parameters:

  • $param param HeadModel $param (HeadModel)
  • $width param int $width (int)
  • $height param int $height (int) `php $tmp=$ampgeneratorone->headthis(); ` ## Method sectionFooter It generates a footer of the amp site.

Parameters:

  • $param param FooterModel $param (FooterModel) `php $tmp=$ampgeneratorone->sectionFooterthis(); ` ## Method sectionAnalytics Generates a Google Analytics section

Parameters:

  • $account UA-XXXXX-Y (string) `php HeaderModel()); ` `php $tmp=$ampgeneratorone->sectionAnalyticsthis(); ` ## Method sectionFirst It draw a first section (hero style)

Parameters:

  • $content param SectionModel $content (SectionModel) `php $tmp=$ampgeneratorone->sectionFirstthis(); ` ## Method sectionImageButton It generates a section with a single button.

Parameters:

  • $content param SectionModel $content (SectionModel)
  • $fullscreen param bool $fullscreen (bool) `php $tmp=$ampgeneratorone->sectionImageButtonthis(); ` ## Method sectionText It generates a section with a text.

Parameters:

  • $content param SectionModel $content (SectionModel) `php $tmp=$ampgeneratorone->sectionTextthis(); ` ## Method sectionTextQuote It generates a quote text

Parameters:

  • $content param SectionModel $content (SectionModel) `php $tmp=$ampgeneratorone->sectionTextQuotethis(); ` ## Method sectionUL It generates an unsorted list section

Parameters:

  • $links param LinkModel[] $links (LinkModel[]) `php $tmp=$ampgeneratorone->sectionULthis(); ` ## Method sectionOL It generates a sorted list section

Parameters:

  • $links param LinkModel[] $links (LinkModel[]) `php $tmp=$ampgeneratorone->sectionOLthis(); ` ## Method sectionButtons It generates a section with one (or more than one) buttons.

Parameters:

  • $content param SectionModel $content (SectionModel) `php $tmp=$ampgeneratorone->sectionButtonsthis(); ` ## Method sectionCols It generates a section with columns

Parameters:

  • $contents param SectionModel[] $contents (SectionModel[]) `php $tmp=$ampgeneratorone->sectionColsthis(); ` ## Method sectionHeaderCentral It generates a header central section. It could includes buttons.

Parameters:

  • $content param SectionModel $content (SectionModel) `php $tmp=$ampgeneratorone->sectionHeaderCentralthis(); ` ## Method sectionRaw

Parameters:

Method sectionImageContent

It generates a section with an image content.

Parameters:

  • $content param SectionModel $content (SectionModel)
  • $width param $width ()
  • $height param $height () `php $tmp=$ampgeneratorone->sectionImageContentthis(); ` ## Method sectionImageContentLeft It generates a section with a image content at the left.

Parameters:

  • $content param SectionModel $content (SectionModel)
  • $width param $width ()
  • $height param $height () `php $tmp=$ampgeneratorone->sectionImageContentLeftthis(); ` ## Method sectionTable It generates a table

Parameters:

  • $cols param array $cols (array) `php $tmp=$ampgeneratorone->sectionTablethis(); ` ## Method sectionImage It generates an image. The size of the image is required to calculate the ratio

Parameters:

  • $content param SectionModel $content (SectionModel)
  • $width param int $width (int)
  • $height param int $height (int) `php $tmp=$ampgeneratorone->sectionImagethis(); ` ## Method sectionGMapFull It generates a google map section. It can't be locate at the 30% top of the site (Amp restriction)

Parameters:

  • $content param SectionModel $content (SectionModel)
  • $googleMapUrl param string $googleMapUrl (string)
  • $placeholder param string $placeholder (string) `php $tmp=$ampgeneratorone->sectionGMapFullthis(); ` ## Method sectionGMapBoxed It generates a google map (boxed) section. It can't be locate at the 30% top of the site (Amp restriction)

Parameters:

  • $content param SectionModel $content (SectionModel)
  • $googleMapUrl param string $googleMapUrl (string) `php $tmp=$ampgeneratorone->sectionGMapBoxedthis(); ` ## Method sectionNavigation It generates a footer navigation

Parameters:

  • $content param SectionModel $content (SectionModel)
  • $image param string $image (string)
  • $width param int $width (int)
  • $height param int $height (int)
  • $navCol1 param LinkModel[] $navCol1 (LinkModel[])
  • $navCol2 param LinkModel[] $navCol2 (LinkModel[])
  • $navCol3 param LinkModel[] $navCol3 (LinkModel[])
  • $navCol4 param LinkModel[] $navCol4 (LinkModel[]) `php $tmp=$ampgeneratorone->sectionNavigationthis(); ` ## Method sectionColImage It generates a section with images and text.

Parameters:

  • $contents param SectionModel[] $contents (SectionModel[])
  • $width param int $width (int)
  • $height param int $height (int)
  • $maxCol param int $maxCol (int) `php $tmp=$ampgeneratorone->sectionColImagethis(); ` ## Method genModifyStyle

Parameters:

Method setBackgroundColor

Fluent operation, it changes the background color of the next section

Parameters:

  • $color Example #ffffff,rgb(30,30,30),white (string) `php $tmp=$ampgeneratorone->setBackgroundColorthis(); ` ## Method setBgImage Fluent operation, it changes the background image of the next section

Parameters:

  • $bgImage param string $bgImage (string) `php $tmp=$ampgeneratorone->setBgImagethis(); ` ## Method setClassTextColor Fluent operation, it sets the class of the text

Parameters:

  • $class text-primary,text-secondary,text-success,text-info,text-warning,text-danger,text-white,text-black (string) `php $tmp=$ampgeneratorone->setClassTextColorthis(); ` ## Method setPadding Fluent operation, it changes the padding

Parameters:

  • $top param $top ()
  • $bottom param $bottom () `php $tmp=$ampgeneratorone->setPaddingthis(); ` ## Method resetDefault

Parameters:

Method setDefault

It reset to the default background color and text class

Parameters:

  • $backGroundColor Example #ffffff,rgb(30,30,30),white (string)
  • $classTextColor text-primary,text-secondary,text-success,text-info,text-warning,text-danger,text-white,text-black (string) ## Method image

Parameters:

Method table

Parameters:

Method render

It renders the result page.

Parameters:

Method renderToFile

It renders the result to file

Parameters:

  • $filename param string $filename (string) ## Method genLink Generate the first link of an array only if array constains information or the link is not empty.

Parameters:

  • $url param LinkModel|LinkModel[] $url (LinkModel|LinkModel[]) `php $tmp=$ampgeneratorone->genLinkthis(); ` ## Method genButton Generate the first link of an array only if array constains information or the link is not empty.

Parameters:

  • $url param ButtonModel|ButtonModel[] $url (ButtonModel|ButtonModel[])

> Note: You could change the color. !

Validity

You could validate your amp on Google search validation

Google Amp Validation

Version

  • 1.5 2019-08-31 Removed min-width in the sections.
  • 1.4 2019-06-04 Some fixes.
  • 1.3 2018-11-03 Added Phpunit and travis.
  • 1.1 2018-09-20 Fixed some bugs.
  • 1.0 2018-09-08 First non beta version
  • 0.3 2018-09-07 Cleaning the house.
  • 0.2 2018-09-06 Working version.
  • 0.1 2018-08-20 First prototype

Example demo:

         

See end result

Full Project

  Files folder image Files  
File Role Description
Files folder imagedoc (6 files)
Files folder imageexample (4 files, 2 directories)
Files folder imagelib (1 file)
Files folder imagetests (8 files)
Accessible without login Plain text file .travis.yml Data Auxiliary data
Accessible without login Plain text file .travis.yml Data Auxiliary data
Accessible without login Plain text file .travis.yml Data Auxiliary data
Accessible without login Plain text file .travis.yml Data Auxiliary data
Accessible without login Plain text file composer.json Data Auxiliary data
Accessible without login Plain text file LICENSE Lic. License text
Accessible without login Plain text file phpunit.xml Data Auxiliary data
Accessible without login Plain text file phpunit.xml Data Auxiliary data
Accessible without login Plain text file phpunit.xml Data Auxiliary data
Accessible without login Plain text file phpunit.xml Data Auxiliary data
Accessible without login Plain text file README.md Doc. Documentation

  Files folder image Files  /  doc  
File Role Description
  Accessible without login Image file example1-sm.jpg Icon Icon image
  Accessible without login Image file example1-sm.png Data Auxiliary data
  Accessible without login Image file example1.jpg Data Auxiliary data
  Accessible without login Image file example1.png Data Auxiliary data
  Accessible without login Image file simplesection.jpg Data Auxiliary data
  Accessible without login Image file validate.jpg Data Auxiliary data

  Files folder image Files  /  example  
File Role Description
Files folder imageMediumExample (20 files, 2 directories)
Files folder imageresources (10 files)
  Accessible without login Plain text file example-generated.html Output Documentation
  Accessible without login Plain text file index-amp.php Example Example script
  Accessible without login Plain text file smallexample-amp.php Example Example script
  Accessible without login HTML file smallexample-generated.html Doc. Documentation

  Files folder image Files  /  example  /  MediumExample  
File Role Description
Files folder imagelib (4 files)
Files folder imageresources (12 files, 1 directory)
  Accessible without login Plain text file front.php Example Example script
  Accessible without login Plain text file front.php Example Example script
  Accessible without login Plain text file front.php Example Example script
  Accessible without login Plain text file front.php Example Example script
  Accessible without login Plain text file landing.1.php Example Example script
  Accessible without login Plain text file landing.1.php Example Example script
  Accessible without login Plain text file landing.1.php Example Example script
  Accessible without login Plain text file landing.1.php Example Example script
  Accessible without login Plain text file landing.2.php Example Example script
  Accessible without login Plain text file landing.2.php Example Example script
  Accessible without login Plain text file landing.2.php Example Example script
  Accessible without login Plain text file landing.2.php Example Example script
  Accessible without login Plain text file landing.3.php Example Example script
  Accessible without login Plain text file landing.3.php Example Example script
  Accessible without login Plain text file landing.3.php Example Example script
  Accessible without login Plain text file landing.3.php Example Example script
  Accessible without login Plain text file landing.4.php Example Example script
  Accessible without login Plain text file landing.4.php Example Example script
  Accessible without login Plain text file landing.4.php Example Example script
  Accessible without login Plain text file landing.4.php Example Example script

  Files folder image Files  /  example  /  MediumExample  /  lib  
File Role Description
  Accessible without login Plain text file libfolder.md Data Auxiliary data
  Accessible without login Plain text file libfolder.md Data Auxiliary data
  Accessible without login Plain text file libfolder.md Data Auxiliary data
  Accessible without login Plain text file libfolder.md Data Auxiliary data

  Files folder image Files  /  example  /  MediumExample  /  resources  
File Role Description
Files folder imagelogo (64 files)
  Accessible without login Image file banner_2250x441.jpg Data Auxiliary data
  Accessible without login Image file banner_2250x441.jpg Data Auxiliary data
  Accessible without login Image file banner_2250x441.jpg Data Auxiliary data
  Accessible without login Image file banner_2250x441.jpg Data Auxiliary data
  Accessible without login Image file cupcake_square.jpg Data Auxiliary data
  Accessible without login Image file cupcake_square.jpg Data Auxiliary data
  Accessible without login Image file cupcake_square.jpg Data Auxiliary data
  Accessible without login Image file cupcake_square.jpg Data Auxiliary data
  Accessible without login Image file pexels-photo-585581.jpeg Data Auxiliary data
  Accessible without login Image file pexels-photo-585581.jpeg Data Auxiliary data
  Accessible without login Image file pexels-photo-585581.jpeg Data Auxiliary data
  Accessible without login Image file pexels-photo-585581.jpeg Data Auxiliary data

  Files folder image Files  /  example  /  resources  
File Role Description
  Accessible without login Image file accessory-analog-classic-84475.jpg Data Auxiliary data
  Accessible without login Image file banner_2250x441.jpg Data Auxiliary data
  Accessible without login Image file cupcake_square.jpg Data Auxiliary data
  Accessible without login Image file favicon.ico Data Auxiliary data
  Accessible without login Image file logo.jpg Data Auxiliary data
  Accessible without login Image file pexels-photo-1028704.jpeg Data Auxiliary data
  Accessible without login Image file pexels-photo-1073767.jpeg Data Auxiliary data
  Accessible without login Image file pexels-photo-1073772.jpeg Data Auxiliary data
  Accessible without login Image file pexels-photo-532126.jpeg Data Auxiliary data
  Accessible without login Image file pexels-photo-635409.jpeg Data Auxiliary data

  Files folder image Files  /  lib  
File Role Description
  Plain text file AmpGeneratorOne.php Class Class source

  Files folder image Files  /  tests  
File Role Description
  Plain text file AmpGeneratorOneTest.php Class Class source
  Plain text file AmpGeneratorOneTest.php Class Class source
  Plain text file AmpGeneratorOneTest.php Class Class source
  Plain text file AmpGeneratorOneTest.php Class Class source
  Accessible without login Plain text file bootstrap.php Aux. Auxiliary script
  Accessible without login Plain text file bootstrap.php Aux. Auxiliary script
  Accessible without login Plain text file bootstrap.php Aux. Auxiliary script
  Accessible without login Plain text file bootstrap.php Aux. Auxiliary script

 Version Control Unique User Downloads Download Rankings  
 58%
Total:208
This week:5
All time:8,185
This week:69Up