File tree Expand file tree Collapse file tree 4 files changed +59
-23
lines changed Expand file tree Collapse file tree 4 files changed +59
-23
lines changed Original file line number Diff line number Diff line change 1
1
<?php
2
2
namespace app ;
3
3
4
- require __DIR__ . '/../vendor/liw/core/App .php ' ;
4
+ require __DIR__ . '/../vendor/liw/core/Application .php ' ;
5
5
6
- use liw \core \App as Application ;
6
+ use liw \core \Application ;
7
7
8
8
/**
9
+ * Это финальный класс.
10
+ * От него более нельзя наследоваться.
9
11
* Class App
10
12
* @package app
11
13
*/
12
- class App extends Application
14
+ final class App extends Application
13
15
{
14
16
public function __construct ()
15
17
{
16
18
// Обращаемся к конструктору родительского класса
17
19
parent ::__construct ();
18
20
echo 'Создался новый экземпляр класса из папки "app/"<br> ' ;
19
21
}
22
+
23
+ /**
24
+ * @return string
25
+ */
26
+ public function run ()
27
+ {
28
+ return 'Возвращаем строку, как предписано в родительском классе. ' ;
29
+ }
30
+
31
+ /**
32
+ * Попытка переопределить финальный метод вызовет ошибку.
33
+ * раскомментируйте строку ниже, чтобы убедиться.
34
+ */
35
+ //public function getFramework(){}
20
36
}
Load Diff This file was deleted.
Original file line number Diff line number Diff line change
1
+ <?php
2
+ namespace liw \core ;
3
+
4
+ /**
5
+ * Это абстрактный класс.
6
+ * Нельзя создать объект этого класса.
7
+ * Можно лишь наследоваться от него.
8
+ * Class Application
9
+ */
10
+ abstract class Application
11
+ {
12
+ public function __construct ()
13
+ {
14
+ echo 'Создался новый экземпляр класса из папки "vendor/liw/core/"<br> ' ;
15
+ }
16
+
17
+ /**
18
+ * Это абстрактный метод.
19
+ * Он не содержит реализации (нет тела метода в фигурных скобках)
20
+ * @return string
21
+ */
22
+ abstract public function run ();
23
+
24
+ /**
25
+ * Это финальный метод.
26
+ * Его нельзя переопределить в дочернем классе.
27
+ */
28
+ final public function getFramework ()
29
+ {
30
+ return 'LIW ' ;
31
+ }
32
+
33
+ }
Original file line number Diff line number Diff line change 4
4
* На этот файл будут переадресованы все запросы нашего сайта.
5
5
*/
6
6
7
+ // Включим вывод всех ошибок на экран.
8
+ error_reporting (E_ALL ); // устанавливает уровень отслеживаемых ошибок интерпретатором php
9
+ ini_set ('display_errors ' , 1 ); // дает команду интерпретатору php выводить все отслеживаемые ошибки в браузере
10
+
7
11
// Подключили файл из папки app
8
12
require __DIR__ . '/../app/App.php ' ;
9
13
10
14
// создали новый объект класса из папки vendor
11
15
$ app = new app \App ();
12
16
13
- // Имеем доступ к родительскому методу.
14
- $ app ->run (); // выполнит родительский метод run
17
+ // Попытка создать экземпляр абстрактного класса вызовет ошибку.
18
+ // Раскомментируйте строку ниже, чтоб убедиться.
19
+ //$app2 = new liw\core\Application();
You can’t perform that action at this time.
0 commit comments