Achjo.. „undefined function Nette\Utils\mb_strtoupper()“

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

Zdravím,

vím, že se to tu už jednou řešilo, ale stejně si nevím rady.. určitě půjde o nějakou prkotinu, kterou přehlížím, už na to zoufale čučím několik hodin a prostě nevím..

Tester funguje dobře, ale jakmile použiju něco z Nette\Utils\Strings co používá mb_*, tak to prostě nechce chodit. Když si někde v testech zavolám get_loaded_extensions(), dozvím se, že se skutečně mbstring nenačetl a já absolutně nechápu proč, když mám vše nastavené správně (nebo si to aspoň myslím).

Jedu na Windows a používám Uniform Server.

Testy spouštím takto:

php vendor/nette/tester/Tester/tester.php -c tests/php.ini tests

a výstup vypadá takto:

C:\Users\Zax\Desktop\uniform-server\UniServerZ\www\__zaxcms_libs\ui>php vendor/nette/tester/Tester/tester.php -c tests/php.ini tests
 _____ ___  ___ _____ ___  ___
|_   _/ __)( __/_   _/ __)| _ )
  |_| \___ /___) |_| \___ |_|_\  v1.3.0

PHP 5.4.12 | "php-cgi"  -c "C:\Users\Zax\Desktop\uniform-server\UniServerZ\www\__zaxcms_libs\ui\tests\php.ini" | 8 threads

F

-- FAILED: tests\tests\Control.phpt
   Exited with error code 255 (expected 0)

   Fatal error: Call to undefined function Nette\Utils\mb_strtoupper() in C:\Users\Zax\Desktop\uniform-server\UniServerZ\www\__zaxcms_libs\ui\vendor\net
te\utils\src\Utils\Strings.php on line 270


FAILURES! (1 test, 1 failure, 0.1 seconds)

V tests/php.ini mám toto:

[PHP]
extension_dir="C:\Users\Zax\Desktop\uniform-server\UniServerZ\core\php54\extensions"
extension="php_mbstring.dll"

Cesta je copy&pastnutá, takže překlep je vyloučený, dllko existuje (zkoušel jsem i různé čachry jako relativní cestu, změnit zpětná lomítka na normální, použít dvojitá zpětná lomítka, zkopčit dllko do složky s testy a podle toho upravit cestu atd.), no prostě nevidím chybu, koukněte sami:

Zkoušel jsem i testeru podstrčit různé php*.ini soubory, které jsou v distribuci s Uniform Serverem a předpokládám, že v nich je mbstring zapnutý (aby ne, když v prohlížeči vše normálně funguje), ale pořád nic.

Prosím, poraďte. Já už jsem z toho prostě jelen.

voda
Člen | 561
+
0
-

Zkus hodnotu pro extension bez uvozovek:

extension=php_mbstring.dll
Zax
Člen | 370
+
0
-

@voda Bohužel, to už jsem zkoušel, i tu cestu.. :-/ ale i tak dík.

EDIT: by to možná chtělo zjistit nějak, jestli se ten ini vůbec použije… tester sice napíše že jo (když dostane neexistující cestu, tak zařve – vyzkoušeno), ale přijde mi to, že se to k samotnému phpku prostě nějak nedostane. Nějaký nápad, jak to ověřit?

Editoval Zax (5. 1. 2015 11:36)

Milo
Nette Core | 1283
+
+1
-

Parametr --info Ti ukáže přesně prostředí, ve kterém běží test.

voda
Člen | 561
+
0
-

@Zax: tak možná ještě bez [PHP]?

Zax
Člen | 370
+
0
-

Díky @Milo ! Zjistil jsem, že příkaz php spouští binárku z instalace wampu, o které jsem ani nevěděl, že ji mám, a to zjevně způsobuje problém. Když zadám absolutní cestu k phpku, které je v Uniform serveru, tak už se rozšíření načte. Wow, v tom bych normálně problém fakt nehledal. Ještě jednou moc díky! Vyřešeno.


EDIT: ještě doplním, kdyby někdo měl stejný problém a chtěl přenastavit, kde se má hledat phpko při použití příkazu „php“: pravým na počítač → vlastnosti → upřesnit nastavení systému → karta Upřesnit → proměnné prostředí → dole najít položku „path“ → upravit a přepsat cestu k phpku (a restartovat PC) ;-)

Editoval Zax (5. 1. 2015 12:11)

bazo
Člen | 620
+
0
-

preco maju vsetci stale potrebu pouzivat rozne wampy, uniform servery ked na windows mas normalny server IIS
nemal by si potom taketo problemy

Zax
Člen | 370
+
0
-

@bazo Uniform Server je přenosný, zkopčím složku na flashku a mám tam celej server i s databází. U IIS bych si nebyl tak jistý (ale přiznávám, že jsem ho vůbec nezkoušel, takže možná kecám).

bazo
Člen | 620
+
0
-

tak ten prenosny nie je. ale to mi vobec nepride ako podstatna feature

Šaman
Člen | 2659
+
0
-

Za sebe hlavně proto, že na produkci je (u mě) vždy Apache a tak chci vyvíjet ne něm.

Zax
Člen | 370
+
0
-

@bazo A třeba mně zase přijde jako zásadní. Různí lidé mají různé potřeby, to je k nevíře, co? :-) Není nad to si celej server v aktuálním stavu během minuty přetáhnout do noťasu a vzít si práci třeba do postele když člověka zrovna rozbolí záda :-D

@Šaman Uniform Server používá Apache… just saying… jediný portable server ala wamp co znám, celkem fajn věc ;-)

Editoval Zax (5. 1. 2015 15:10)

bazo
Člen | 620
+
+1
-

a to sa ti tak isto presunie aj db?

ja ked chcem ist robit na laptope tak spravim git push na pc a na laptope git pull a ficim dalej

a na produkcii mam nginx ale nebudem sa kvoli tomu s nim serkat aj na windowsoch. klikatka forever :)

Zax
Člen | 370
+
0
-

No jasně že i databázi, proč by ne, i MySQL jsou jenom soubory..

Hmm git mě na tohle použít nenapadlo.. to pushuješ do nějakého vzdáleného repa? Jestli jo, tak ti docela závidím, to bych s internetem od „ou-tů“ co mám doma asi nedával… stačí ty noční můry když se blíží termín na deploy :-(

bazo
Člen | 620
+
+1
-

hej na bitbucket. mne by zas nenapadlo si stale nieco hore dole kopirovat, pri tom mnozstve projektov, co mam v netbeans, by ma asi porazilo