Achjo.. „undefined function Nette\Utils\mb_strtoupper()“
- Zax
- Člen | 370
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.
- Zax
- Člen | 370
@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)
- Zax
- Člen | 370
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)
- Zax
- Člen | 370
@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)
- Zax
- Člen | 370
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 :-(