Tutorial na blog, nejde index.php

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
jackm
Člen | 54
+
0
-

Verze Nette:2 bez prefixu//ježiš já jsem vůl, v tom souboru to má vlastní verzi :D :D
Verze PHP:5.2
Ahoj, zkusil jsem si stáhnout zdrojový kód tohoto blogu.
V config.ini jsem si změnil připojení k mysql databázi takto, driver jsem dal místo mysqli – db.driver = mysql.Ale s tím to nesouvidí.Samozřejmě jsem vytvořil v databízi i potřebné tabulky.Chyba je ale v document_root index.php.

Notice: Use of undefined constant __DIR__ - assumed '__DIR__' in C:\Program Files\EasyPHP5.2.10\www\blog\document_root\index.php on line 4

Warning: require(__DIR__/../app/bootstrap.php) [function.require]: failed to open stream: No such file or directory in C:\Program Files\EasyPHP5.2.10\www\blog\document_root\index.php on line 13

Fatal error: require() [function.require]: Failed opening required '__DIR__/../app/bootstrap.php' (include_path='.;C:\php5\pear') in C:\Program Files\EasyPHP5.2.10\www\blog\document_root\index.php on line 13

Zkoušel jsem index.php zaměnit z verze Nette 2, ale taky chyba.
Děkuji za pomoc

Editoval jackm (14. 2. 2011 21:00)

Bertram
Člen | 75
+
0
-

Konstanta__DIR__ namísto dirname(__FILE__) funguje až od PHP 5.3

jackm
Člen | 54
+
0
-

Děkuji, opravil jsem kód.

<?php

// absolute filesystem path to the web root
define('WWW_DIR', dirname(__FILE__));


// absolute filesystem path to the application root
define('APP_DIR', WWW_DIR . '/../app');

// absolute filesystem path to the libraries
11.radek//define('LIBS_DIR', WWW_DIR . '/../libs');

// load bootstrap file
require APP_DIR . '/bootstrap.php';

Jenže to píše chybu s ( v 11 řádku ten jsem označil, koukal jsem na něj, ale nic jsem tam špatné nenašel.

Parse error: syntax error, unexpected T_STRING, expecting T_CONSTANT_ENCAPSED_STRING or '(' in C:\Program Files\EasyPHP5.2.10\www\PJK-Nette-Blog-Tutorial-5d71fd2\app\bootstrap.php on line 11
Bertram
Člen | 75
+
0
-

toto přece není řádek z bootstrap.php

jackm
Člen | 54
+
0
-

Není, toho jsem si nevšiml, promiňte, že se tu projevuju jako blb. :D

<?php

/**
 * My Application bootstrap file.
 *
 * @copyright  Copyright (c) 2010 John Doe
 * @package    MyApplication
 */


11.radek//use Nette\Debug,
	Nette\Environment,
	Nette\Application\Route,
	Nette\Application\SimpleRouter;
redhead
Člen | 1313
+
0
-

Používáš PHP 5.2 tam namespaces nefungujou!

jackm
Člen | 54
+
0
-

Jak to tedy mohu definovat jinak?Děkuji
edit:Vím že to jde pomocí require, ale nevím přesně jaké soubory z těch složek.

Editoval jackm (14. 2. 2011 21:30)

Peter9
Člen | 69
+
0
-

stiahnúť si verziu pre php 5.2

redhead
Člen | 1313
+
0
-

Spíš PHP 5.3 ne?

Nebo ty use ve všech souborech projektu vyházej a pokud se někde objevuje namespace Nette\... uvnitř kódu nebo u globálních funkcí začínající na \, tak to smaž a nech jenom název té třídy nebo název té globální funkce.

\globalniFce();
//na
globalniFce();

new Nette\Xyz\Abc();
//na
new Abc();

Editoval redhead (14. 2. 2011 21:36)

Bertram
Člen | 75
+
0
-

Musíš ty jmenné prostory smazat nebo zakomentovat,ale všude ne jenom v tomto souboru.

jackm
Člen | 54
+
0
-

Díky moc, ale právě toho mám dost pole s namespaces(NetteLoader). :O
Pokusím se najít nějaký jiná tutoriál na blog v Nette(nebo jestli o nějakém víte).

Editoval jackm (14. 2. 2011 21:44)

Peter9
Člen | 69
+
0
-

redhead, Bertram:
Používa PHP 5.2.
Stiahol Nette 2.0.

Neviem, či Nette 2.0, má nejaký inteligentný loader, ale ak nie, potom musí buď nainštalovať PHP 5.3 alebo prejsť na Nette bez namespaceov.

jackm
Člen | 54
+
0
-

Ví někdo o nějakém dobrém tutoriálu na blog(krom toho v prvním příspěvku)?Googlil jsem a našel 2 příklady ale bez vystvětlení.
Peter9:Já mám bez namespaců, ale myslím, že moje verze Nette nesouvisí s tím blogem, jelikož to jsem stáhl celé u toho tutoriálu, takže je tam jiná verze.

Bertram
Člen | 75
+
0
-

Velmi dobrý je ten,kderý jsi vzdal.

redhead
Člen | 1313
+
0
-

Tutoriál je psán pro namespace verzi Nette pro PHP 5.3, tak stačí vymazat namespaces pouze ve složce app/ (moc tam toho není) a dát si do libs/Nette/ verzi Nette bez namespaces, kterou stáhneš tady z webu.

Editoval redhead (14. 2. 2011 22:21)

jackm
Člen | 54
+
0
-

Ok, díky moc, a ten so mám stáhnout má být jaká verze 0.9 nebo 2?Děkuji a promiňte, že jsem Vám vzal čas…
Dělal jsem v PHP a rád bych se naučil toto, tak sjem začal psát ale bez využití MVP, to je ten Framework skoro k ničemu, protože MVP hraje hlavní roli, rád bych pochopil i ten, ale je to těžší.

Editoval jackm (14. 2. 2011 22:22)

redhead
Člen | 1313
+
0
-

Dle tutoriálu to má být 0.9.5. Najít to můžeš tady nebo zkus 0.9.7, měla by být kompatibilní.

Editoval redhead (14. 2. 2011 22:24)

jackm
Člen | 54
+
0
-

redhead:Moc díky, udělal jsem vše jak jsi psal.Teď je ale problém i v dibi, tam byly taky namespace, tak jsem překopíroval z verze 0.95 Nette, a hlásí to toto.

Compile Error

Cannot redeclare class DibiPcreException
Source file ▼

File: C:\Program Files\EasyPHP5.2.10\www\PJK-Nette-Blog-Tutorial-5d71fd2\libs\dibi\dibi\dibi.php   Line: 61
Line 54:                PREG_RECURSION_LIMIT_ERROR => 'Recursion limit was exhausted',
Line 55:                PREG_BAD_UTF8_ERROR => 'Malformed UTF-8 data',
Line 56:                5 => 'Offset didn\'t correspond to the begin of a valid UTF-8 code point', // PREG_BAD_UTF8_OFFSET_ERROR
Line 57:            );
Line 58:            $code = preg_last_error();
Line 59:            parent::__construct(str_replace('%msg', isset($messages[$code]) ? $messages[$code] : 'Unknown error', $message), $code);
Line 60:        }
Line 61:  tu je cerveno//  }
}Line 62:
Line 63:
Line 64:
Line 65:    // dibi libraries
Line 66:    require_once dirname(__FILE__) . '/libs/interfaces.php';
Line 67:    require_once dirname(__FILE__) . '/libs/DibiDateTime.php';
Line 68:    require_once dirname(__FILE__) . '/libs/DibiObject.php';
redhead
Člen | 1313
+
0
-

Smaž obsah temp/. Nenechal jsi tam starou verzi dibi? Jinak nevím.

jackm
Člen | 54
+
0
-

Smazal jsem temp, vymazal celé dibi a dal tam znovu to z 0.95(předtím jsem to jen překopírovával).Díky moc vše, už to jde! :)