mirror of
https://github.com/restoreddev/phpapprentice.git
synced 2025-08-02 04:50:34 +02:00
Merge pull request #2 from restoreddev/classes-visibility
Adding classes-visibility page
This commit is contained in:
19
.travis.yml
19
.travis.yml
@@ -3,12 +3,31 @@ language: php
|
|||||||
php:
|
php:
|
||||||
- '7.1'
|
- '7.1'
|
||||||
|
|
||||||
|
branches:
|
||||||
|
only:
|
||||||
|
- master
|
||||||
|
|
||||||
cache:
|
cache:
|
||||||
directories:
|
directories:
|
||||||
- $HOME/.composer/cache
|
- $HOME/.composer/cache
|
||||||
|
- $HOME/.npm
|
||||||
|
|
||||||
|
before_install:
|
||||||
|
- nvm install 8
|
||||||
|
|
||||||
install:
|
install:
|
||||||
- composer update --prefer-dist --no-interaction --prefer-stable --no-suggest
|
- composer update --prefer-dist --no-interaction --prefer-stable --no-suggest
|
||||||
|
- npm update
|
||||||
|
|
||||||
script:
|
script:
|
||||||
|
- php apprentice build
|
||||||
|
- npm run prod
|
||||||
- vendor/bin/phpunit
|
- vendor/bin/phpunit
|
||||||
|
|
||||||
|
deploy:
|
||||||
|
provider: pages
|
||||||
|
skip-cleanup: true
|
||||||
|
local-dir: .build
|
||||||
|
target-branch: gh-pages
|
||||||
|
on:
|
||||||
|
branch: master
|
||||||
|
@@ -56,6 +56,9 @@ button {
|
|||||||
button:hover {
|
button:hover {
|
||||||
color: $primary-color-dark;
|
color: $primary-color-dark;
|
||||||
}
|
}
|
||||||
|
button:focus {
|
||||||
|
outline: 0;
|
||||||
|
}
|
||||||
button .icon {
|
button .icon {
|
||||||
vertical-align: middle;
|
vertical-align: middle;
|
||||||
}
|
}
|
||||||
@@ -124,7 +127,7 @@ button:hover .icon svg {
|
|||||||
.grid-toc {
|
.grid-toc {
|
||||||
display: grid;
|
display: grid;
|
||||||
grid-template-columns: 2fr 1fr;
|
grid-template-columns: 2fr 1fr;
|
||||||
grid-column-gap: 3em;
|
grid-column-gap: 1em;
|
||||||
}
|
}
|
||||||
.navigate-links {
|
.navigate-links {
|
||||||
margin: 1em 0;
|
margin: 1em 0;
|
||||||
@@ -215,3 +218,22 @@ button:hover .icon svg {
|
|||||||
from {left: -300px; opacity: 0}
|
from {left: -300px; opacity: 0}
|
||||||
to {left: 0; opacity: 1}
|
to {left: 0; opacity: 1}
|
||||||
}
|
}
|
||||||
|
.logo-404 {
|
||||||
|
max-width: 200px;
|
||||||
|
max-height: 200px;
|
||||||
|
margin: 0 auto;
|
||||||
|
display: block;
|
||||||
|
}
|
||||||
|
.logo-404 svg {
|
||||||
|
max-width: 200px;
|
||||||
|
max-height: 200px;
|
||||||
|
}
|
||||||
|
.toc-404 {
|
||||||
|
max-width: 250px;
|
||||||
|
margin: 0 auto;
|
||||||
|
}
|
||||||
|
.message-404 {
|
||||||
|
font-size: 2em;
|
||||||
|
margin: 0 auto;
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
11
assets/templates/404.phtml
Normal file
11
assets/templates/404.phtml
Normal file
@@ -0,0 +1,11 @@
|
|||||||
|
<?php partial('header', ['title' => 'PHP Apprentice']) ?>
|
||||||
|
|
||||||
|
<div class="container center">
|
||||||
|
<a href="/" class="logo-404"><?= icon('elephant') ?></a>
|
||||||
|
<p class="message-404">Whoops! The page could not be found.</p>
|
||||||
|
<div class="toc-404">
|
||||||
|
<?php partial('table_of_contents') ?>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<?php partial('footer') ?>
|
@@ -0,0 +1,43 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
// In the last chapter, we defined properties and methods on the class using the public keyword.
|
||||||
|
// You can also define them using the "protected" and "private" keywords.
|
||||||
|
// Both keywords prevent the properties and functions from being accessible outside the object.
|
||||||
|
// Only the object itself can use each.
|
||||||
|
class Phone
|
||||||
|
{
|
||||||
|
private $number;
|
||||||
|
|
||||||
|
public function setNumber($number)
|
||||||
|
{
|
||||||
|
$this->number = $number;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// We cannot set the number using "$phone->number = '123-456-7890'".
|
||||||
|
// Instead, we can use the public method.
|
||||||
|
$phone = new Phone();
|
||||||
|
$phone->setNumber('123-456-7890');
|
||||||
|
|
||||||
|
// Making an attribute or function private, gives you more control over the data in the object.
|
||||||
|
// For example, we could prevent a number being set if it starts with a 7.
|
||||||
|
class Phone2
|
||||||
|
{
|
||||||
|
private $number;
|
||||||
|
|
||||||
|
public function setNumber($number)
|
||||||
|
{
|
||||||
|
if (substr($number, 0, 1) !== '7') {
|
||||||
|
$this->number = $number;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// The "protected" and "private" keywords work a little differently, but we
|
||||||
|
// will learn more about "protected" when we discuss inheritance.
|
||||||
|
// However, they both prevent functions and properties from being accessed outside an object.
|
||||||
|
class Phone3
|
||||||
|
{
|
||||||
|
private $number;
|
||||||
|
protected $caller;
|
||||||
|
}
|
||||||
|
@@ -24,9 +24,15 @@ $bike = new Bicycle();
|
|||||||
$bike->color = 'Blue';
|
$bike->color = 'Blue';
|
||||||
echo $bike->color . "\n";
|
echo $bike->color . "\n";
|
||||||
|
|
||||||
|
// An instance of a class is called an object. Congratulations!
|
||||||
|
// You are now performing object-oriented development.
|
||||||
|
$redBike = new Bicycle();
|
||||||
|
$redBike->color = 'Red';
|
||||||
|
echo $redBike->color . " Bike Object\n";
|
||||||
|
|
||||||
// A method is a function attached to the class. You can add a method
|
// A method is a function attached to the class. You can add a method
|
||||||
// to a class by using the "public" keyword followed by the function. A method
|
// to a class by using the "public" keyword followed by the function. A method
|
||||||
// can access the attributes and methods of the instance using the "$this" variable.
|
// can access the attributes and methods of an object instance using the "$this" variable.
|
||||||
class Tricycle
|
class Tricycle
|
||||||
{
|
{
|
||||||
public $color;
|
public $color;
|
||||||
|
@@ -10,6 +10,7 @@ return [
|
|||||||
'pages' => [
|
'pages' => [
|
||||||
Page::create('index', 'index.phtml'),
|
Page::create('index', 'index.phtml'),
|
||||||
Page::create('credits', 'credits.phtml'),
|
Page::create('credits', 'credits.phtml'),
|
||||||
|
Page::create('404', '404.phtml'),
|
||||||
Page::create('basics', null, 'basics.php', [
|
Page::create('basics', null, 'basics.php', [
|
||||||
'title' => 'Basics',
|
'title' => 'Basics',
|
||||||
'subtitle' => 'Getting started',
|
'subtitle' => 'Getting started',
|
||||||
|
@@ -76,6 +76,10 @@ class Build
|
|||||||
}
|
}
|
||||||
$output = $this->getOutput($template, $page->variables);
|
$output = $this->getOutput($template, $page->variables);
|
||||||
|
|
||||||
|
if (!file_exists(config('output_dir'))) {
|
||||||
|
mkdir(config('output_dir'));
|
||||||
|
}
|
||||||
|
|
||||||
file_put_contents(config('output_dir') . '/' . $page->name . '.html', $output);
|
file_put_contents(config('output_dir') . '/' . $page->name . '.html', $output);
|
||||||
|
|
||||||
return $output;
|
return $output;
|
||||||
|
Reference in New Issue
Block a user