Kam si uložit pomocné funkce – lama dotaz

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

Ahoj, v php a s Nette zacinam. Rad bych se zeptal, kdyz si vytvarim treba novinku, tak si z titlu chci generovat seo friendly url. Chtel bych se zeptat do jakeho adresare si tuto funkci umistit v ramci struktury Nette? Do jakeho php souboru(nazev) a jakym zpusobem ho volat? Tech funkci muze byt casem vice. diky moc

Šaman
Člen | 2666
+
0
-

To je úplně jen na tvé volbě.

  1. chceš si tyto funkce udržovat samostatně mimo aplikaci? Pak /vendor/others
  2. jinak kamkoliv do /app

V obou případech to najde RobotLoader. Pojmenovat si adresář můžeš třeba Utils a jednotlivé třídy podle toho, čím se zabývají. Inspiruj se v Nette\Utils

Editoval Šaman (28. 5. 2014 22:05)

dawe
Člen | 59
+
0
-

Nedari se mi rozchodit to volani, je to spis problem se syntaxi php
dostavam chybu:

Class 'Utils' not found search►

ale jak se k ni dostat?

ve vendors/others mam soubor Utils.php

<?php
namespace Utils;
class Utils
{
	public static function getSeoURL($title)
	{
		$url = $title;
		$url = preg_replace('~[^\\pL0-9_]+~u', '-', $url);
		$url = trim($url, "-");
		$url = iconv("utf-8", "us-ascii//TRANSLIT", $url);
		$url = strtolower($url);
		$url = preg_replace('~[^-a-z0-9_]+~', '', $url);
		return $url;
	}
}

nasledne v jednom modelu volam pri ukladani dat:
$data->seo_url = \Utils::getSeoURL($data->title);

co delam spatne?

Oli
Člen | 1215
+
0
-

Nemas tam ten namespace. Obecne to je

Namespace\Class

Konkrétně v tvém případě

\Utils\Utils::getSeoURL($data->title)
dawe
Člen | 59
+
0
-

diiky moc

besanek
Člen | 128
+
0
-

Nebylo by lepší využít Nette\Utils\Strings::webalize() https://doc.nette.org/…tils/strings#…` ?