Drukowana wersja tematu

Kliknij tu, aby zobaczyć temat w orginalnym formacie

Forum PHP.pl _ Object-oriented programming _ MVC jak to ugryźć

Napisany przez: Gibcio2008 21.01.2019, 20:35:43

Na początek pokażę pliki

index.php

  1. <?php
  2. require_once "Controller.php";
  3. require_once "Loader.php";
  4.  
  5. $Controller = new Controller();
  6. ?>


Controller.php

  1. <?php
  2. class Controller
  3. {
  4. public http://www.php.net/static $instance;
  5.  
  6. function __construct()
  7. {
  8. self::$instance = $this;
  9.  
  10. $this->loader = new Loader();
  11. }
  12.  
  13. public function get_instance()
  14. {
  15. return self::$instance;
  16. }
  17. }
  18. ?>


Loader.php

  1. <?php
  2. class Loader
  3. {
  4. public function GetFile($path, $data = '')
  5. {
  6. $file = http://www.php.net/file_get_contents($path);
  7.  
  8. http://www.php.net/echo $file;
  9. }
  10. }
  11. ?>



Plik index.php z katalogu application

  1. <?php
  2. class Index extends Controller
  3. {
  4. function __construct()
  5. {
  6. parent::__construct();
  7. }
  8.  
  9. public function Index()
  10. {
  11. $data = http://www.php.net/array
  12. (
  13. 'A' => 'a',
  14. 'B' => $this->loader->GetFile("template/Test.php")
  15. );
  16.  
  17. $this->loader->GetFile("template/main.php", $data);
  18. }
  19. }
  20. ?>


Zawartość pliku main.php

  1. Jakiś tekst
  2. {B}


Moje pytanie brzmi jak podmienić w pliku main.php {B} na zawartość pliku Test.php, próbuję na wszystkie sposoby i przez str_replace i przez przeg_replace i za każdym razem wychodzi jakiś błąd, między innym Catchable fatal error: Object of class Loader could not be converted to string in, proszę o pomoc.

Napisany przez: Tomplus 21.01.2019, 21:09:11

Spróbuj tą bibliotekę:

https://github.com/Tomirad/ConvertStrings


Napisany przez: Gibcio2008 21.01.2019, 21:45:24

Tylko proszę powiedz jak ją podpiąć, bo zielonego pojęcia nie mam

Napisany przez: Pyton_000 21.01.2019, 21:52:14

@Gibcio2008 a co ty chcesz zrobić? Bo mnie się wydaje że ten Twój loader to raczej zamiast file_get_contents powinien mieć po prostu `require_once`

Napisany przez: Gibcio2008 21.01.2019, 22:03:10

Chodzi mi głównie o to żeby z tablicy w Pliku index.php z katalogu application

  1. <?php
  2. class Index extends Controller
  3. {
  4. function __construct()
  5. {
  6. parent::__construct();
  7. }
  8.  
  9. public function Index()
  10. {
  11. $data = http://www.php.net/array
  12. (
  13. 'A' => 'a',
  14. 'B' => $this->loader->GetFile("template/Test.php")
  15. );
  16.  
  17. $this->loader->GetFile("template/main.php", $data);
  18. }
  19. }
  20. ?>


Wartości wprowadzić w pliku main.php za odpowiednie znaczniki np.

[B] lub {B} - żeby była zawartość z $this->loader->GetFile("template/Test.php")

  1. Jakiś tekst
  2. [B]

Napisany przez: markonix 22.01.2019, 01:01:07

https://github.com/bobthecow/mustache.php

Napisany przez: Tomplus 22.01.2019, 06:51:43

No nie wiem w czym problem, skoro na stronie jest nawet przykład użycia:

  1. class Loader
  2. {
  3. public function GetFile($path, $data = '')
  4. {
  5. $file = http://www.php.net/file_get_contents($path);
  6. $convert = new \Treto\ConvertStrings();
  7. http://www.php.net/echo $convert -> interpolate($file, $data,'{}');
  8. }
  9. }
  10.  



Napisany przez: Gibcio2008 22.01.2019, 12:24:46

Poradziłem sobie wystarczyło pobawić się w buforowanie

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)