1
0
mirror of https://github.com/restoreddev/phpapprentice.git synced 2025-07-31 12:00:40 +02:00

Merge pull request #2 from restoreddev/classes-visibility

Adding classes-visibility page
This commit is contained in:
Andrew
2018-09-02 17:24:00 -05:00
committed by GitHub
7 changed files with 108 additions and 2 deletions

View File

@@ -3,12 +3,31 @@ language: php
php:
- '7.1'
branches:
only:
- master
cache:
directories:
- $HOME/.composer/cache
- $HOME/.npm
before_install:
- nvm install 8
install:
- composer update --prefer-dist --no-interaction --prefer-stable --no-suggest
- npm update
script:
- php apprentice build
- npm run prod
- vendor/bin/phpunit
deploy:
provider: pages
skip-cleanup: true
local-dir: .build
target-branch: gh-pages
on:
branch: master

View File

@@ -56,6 +56,9 @@ button {
button:hover {
color: $primary-color-dark;
}
button:focus {
outline: 0;
}
button .icon {
vertical-align: middle;
}
@@ -124,7 +127,7 @@ button:hover .icon svg {
.grid-toc {
display: grid;
grid-template-columns: 2fr 1fr;
grid-column-gap: 3em;
grid-column-gap: 1em;
}
.navigate-links {
margin: 1em 0;
@@ -215,3 +218,22 @@ button:hover .icon svg {
from {left: -300px; opacity: 0}
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;
}

View 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') ?>

View File

@@ -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;
}

View File

@@ -24,9 +24,15 @@ $bike = new Bicycle();
$bike->color = 'Blue';
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
// 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
{
public $color;

View File

@@ -10,6 +10,7 @@ return [
'pages' => [
Page::create('index', 'index.phtml'),
Page::create('credits', 'credits.phtml'),
Page::create('404', '404.phtml'),
Page::create('basics', null, 'basics.php', [
'title' => 'Basics',
'subtitle' => 'Getting started',

View File

@@ -76,6 +76,10 @@ class Build
}
$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);
return $output;