Byla vydána nová verze 2.56.0 distribuovaného systému správy verzí Git. Přispělo 104 vývojářů, z toho 39 nových. Přehled novinek v příspěvku na blogu GitHubu a v poznámkách k vydání.
Hackerská skupina ShinyHunters oznámila průnik do informačních systémů FBI, prostřednictvím zero-day zranitelnosti v platformě Oracle PeopleSoft, kterou úřad využívá mimo jiné pro náborový portál FBIJobs.gov. Útočníci tvrdí, že získali až 3 TB dat o současných i bývalých zaměstnancích a uchazečích o práci. Jako důkaz zveřejnili vzorek přibližně 5 000 záznamů obsahující jména, adresy, telefonní čísla, data narození, čísla
… více »Doba kompilace linuxového jádra se díky rychlejšímu hardwaru a optimalizacím kbuildu snižuje k deseti sekundám. Nejnovější patche Lorenza Stoakse (vznikají i s pomocí SI) zkrátily na testovacím stroji dobu sestavení z dlouhých 22 vteřin na pouhých 15, a to bez použití RAMdisku. Testovací systém tvořily dva procesory AMD EPYC 9575F (oba dohromady poskytují celkem 128 jader a 256 vláken), čtyřiadvacet 64GB DDR5-6400 paměťových modulů a
… více »Před rokem a půl vývojáři postmarketOS informovali, že pro projekt hledají nové jméno. Včera bylo oznámeno: postmarketOS se nově jmenuje Nura.
Hra Factorio dorazila na Printables. Hned teď si můžete stáhnout 65 různých modelů a nechat celou mimozemskou planetu oživnout na svém stole.
GNU Project Debugger aneb GDB byl vydán ve verzi 18.1. Podrobný přehled novinek v souboru NEWS.
Prezident USA Donald Trump během svého projevu na valném shromáždění OSN 22. září 2026 prohlásil, že umělá inteligence 'bude dále oficiálně nazývána superinteligencí', zkráceně SI. Svůj návrh zdůvodnil takto: 'Použití slova artificial činí inteligenci falešnou. Ona falešná není, ve skutečnosti je úžasná'. Zároveň ve svém proslovu prohlásil, že Spojené státy kategoricky odmítají jakékoliv pokusy o vytvoření 'globalistického
… více »Čínská technologická firma Xiaomi představila novou verzi 2.6 svého modelu MiMo, váhy modelů MiMo‑V2.6‑Pro‑RL a MiMo‑V2.6‑Flash‑RL jsou dostupné na HuggingFace pod licencí MIT. Výkonnější varianta Pro má přes bilion parametrů, z toho 42 miliard aktivních, úspornější Flash 309 miliard parametrů, z nichž se při generování aktivuje přibližně 15 miliard. Oba modely mají délku kontextového okna milion tokenů. Tyto MoE modely zvládají
… více »Proběhl Snapdragon Summit 2026. Společnost Qualcomm se mimo jiné pochlubila během Linuxu na čipech Snapdragon X2. Zatím pouze v ranní verzi vhodné pro vývojáře linuxových distribucí a přispěvatele do jádra Linux.
Byla vydána nová verze 2.0 klienta F-Droid určeného pro instalaci bezplatných a otevřených mobilních aplikací do Androidu ze softwarového repozitáře F-Droid (Wikipedie). Jedná se o alternativu k Google Play.
soubor inc.php
$cont = false;
$cont .= 'Nějaký text';
$cont .= 'Nějaký jiný text';
soubor class.php
class sel{
public function __construct(){
include_once(ABSPATH.'/inc.php');
}
}
soubor index.php
include_once(ABSPATH.'/class.php');
$cont = new sel();
echo $cont;
__toString(), ale jeví se mi to jako cesta do pekel.
function __toString() {
include_once(ABSPATH.'/inc.php');
return $cont;
}
Fungovat by to mělo, ale je to celé hrozně nepřehledné. Opravdu to nemůžeš napsat pořádně?
Opravdu to nemůžeš napsat pořádně?Díky, určitě můžu, a poradíš jak to myslíš?
//soubor inc.php
class inc{
protected $cont;
public function __construct(){
$this->cont = false;
$this->cont .= 'Nějaký text';
$this->cont .= 'Nějaký jiný text';
}
}
//soubor sel.php
class sel extends inc{
public function __toString(){
return $this->cont;
}
}
//soubor index.php
function __autoload($class){
include(ABSPATH.'/'.$class.'.php');
}
$cont = new sel();
echo $cont;
Jakých souborů je spousta?Souborů inc.php, akorát mají jinou cestu..
/novinky/inc.php /home/inc.php /kontakty/inc.php
Nemůžeš sem napsat, o co konkrétně se snažíš?Snažím se pomocí class zobrazit obsah souboru dle zadané url. Pokud nekdo zadá url
/novinky/tak se načte obsah souboru /novinky/inc.php
/kontakty/tak se načte obsah souboru /kontakty/inc.php. atd.. Díky
//soubor $modul/inc.php $this->cont = false; $this->cont .= 'Nějaký text'; $this->cont .= 'Nějaký jiný text';
//soubor sel.php
class sel{
private $cont;
public function __construct($modul) {
include(ABSPATH.'/'.$modul.'/inc.php');
}
public function __toString(){
return $this->cont;
}
}
//soubor index.php
function __autoload($class){
include(ABSPATH.'/'.$class.'.php');
}
$cont = new sel($modul);
echo $cont;
// Společný soubor všem částem webu
class Page {
// ... cokoliv používáš všude
protected $title = '(undefined)';
protected $config = array(); // tady máš nějaké volby
public function getTitle() {
return $this->title;
}
public function setPageConfig() {
return $this->title;
}
// tato metoda by mohla byt abstract
public function getContent() {
// obecna stranka proste jen zobrazi index.html
readfile($this->config['base_dir'].'index.html');
}
}
// novinky/main.php
class Novinky extends Page {
protected $title = "Novinky"; // getter je zděděn
public function createContent() {
// nacteni novinek
$q = dibi::select('news.*, ...');
if (isset($this->config['lang'])) {
// pokud bylo zadano '/news/...'
$q->where('news.Lang = %s', $this->config['lang']);
}
if (isset($this->config['path'][0])) {
// pokud je url ve tvaru '/*/id'
$q->where('news.id = %s', $this->config['path'][0]);
}
// ... cokoliv potřebuješ
}
}
O samotné zpracování těchto tříd se pak postará index.php, na který na serveru nasměruješ úplně všecko.
// index.php
$path = explode('/', trim($_SERVER['REQUEST_URI'], '/'));
$page = isset($path[0]) ? $path[0] : '/'; // ošetření prázdné cesty (/)
$page_map = array(
'/' => array('class' => 'Page', 'base_dir' => './home/'),
'kontakty' => array('class' => 'Kontakty'),
'novinky' => array('class' => 'Novinky'),
'news' => array('class' => 'Novinky', 'lang' => 'en'),
);
$page_config = $page_map[$page];
$page_config['path'] = array_slice($path, 1);
$class_name = $page_config['class'];
function __autoload($c) {
include('class/'.strtolower($c).'.class.php');
// dle tveho umisteni souboru s tridama
}
if (class_exists($class_name)) {
$p = new $class_name();
$p->setConfig($page_config);
$p->createContent();
} else {
header("Status: 404 Not Found");
echo 'Sorry, page not found!';
}
Ve výsledku to dopadne tak, že pokud uživatel vleze na adresu http://example.com/, tak se mu zobrazí soubor ./home/index.html a pokud na http://example.com/novinky/1, tak se mu zobrazí novinka s ID 1.
Prostým přidáváním tříd a záznamů do pole $page_map si můžeš aplikaci dle libosti rozšiřovat a přitom se z toho nezblázníš.
A až tě to přestane bavit, tak sáhni po nějakém pěkném frameworku.
Tiskni
Sdílej: