Kirjautuminen

Haku

Tehtävät

Keskustelu: Nettisivujen teko: Sovelluksen toiminta alikansiosta

vinhasika [06.05.2015 12:19:37]

#

Mitenhän nuo kansiot merkitään index.php sivulle, kun on kansio (html), jossa on pääsivut. Sitten on alakansio (ala), josta pitäisi pystyä ajamaan sovellusta. Sovellus sisältää index.php tiedoston ja kansioita application, system. Applicationin alla on controllers yms. Sovellus toimii ylimmässä kansiossa, mutta ei näytä alakansiossa muuta kuin aloitussivun. Sen jälkeen näyttää File not found. Oon eestakasin noita kansioita värkänny tuohon index.php:hen tuloksetta

// The name of THIS file
	define('SELF', pathinfo(__FILE__, PATHINFO_BASENAME));

	// The PHP file extension
	// this global constant is deprecated.
	define('EXT', '.php');

	// Path to the system folder
	define('BASEPATH', str_replace("\\", "/", $system_path));

	// Path to the front controller (this file)
	define('FCPATH', str_replace(SELF, '', __FILE__));

	// Name of the "system folder"
	define('SYSDIR', trim(strrchr(trim(BASEPATH, '/'), '/'), '/'));


	// The path to the "application" folder
	if (is_dir($application_folder))
	{
		define('APPPATH', $application_folder.'/');
	}
	else
	{
		if ( ! is_dir(BASEPATH.$application_folder.'/'))
		{
			exit("Your application folder path does not appear to be set correctly. Please open the following file and correct this: ".SELF);
		}

		define('APPPATH', BASEPATH.$application_folder.'/');
	}

Mod. lisäsi kooditagit!

Metabolix [08.05.2015 15:26:02]

#

Koodissa ei ole mitään järkeä, siinä on bugeja ja todella outoja viritelmiä.

Yleensä index.php:hen ei tarvitse yhtään millään tavalla merkitä mitään kansioita. Selvästi siis kysymyksestäsi nyt puuttuu jotain olennaista tietoa. Koeta edes kertoa, mitä tiedostoja sinulla ylipäänsä on, mitä ne sisältävät, miten niitä on liitetty yhteen esim. include-komennoilla ja millä tavalla alakansiosta ”pitäisi pystyä ajamaan sovellusta”.

Opettele käyttämään viesteissäsi kooditageja (ei lainaustageja), jotta koodeista saa selvää.

Grez [08.05.2015 17:12:45]

#

Koodi vaikuttaa hieman siltä kuin oltaisiin käyttämässä jotain frameworkia, mahdollisesti MVC-tyylistä sellaista. Vastaamista voisi helpottaa jos kerrottaisiin mikä tuollainen on käytössä.

Toisaalta varmaankin ko. frameworkin ohjeista myös löytyy tiedot mitä pitää laittaa mihinkin.

groovyb [11.05.2015 09:35:59]

#

Jos kyse on tosiaan MVC -patternista kuten controller -kansio antaisi ilmi, tulisi oikeat näkymät palauttaa valitun frameworkin mukaisilla metodeilla. Yleisesti, MVC toimii näin:

Controller
- Metodit, jotka palauttavat näkymät (Tai tekevät näkymästä palautuneelle oliolle eri operaatioita, esim tallentavat formilla muokatun tietosisällön)

View / Partial view
- palautettavat näkymät

Model
- konteksti, joka halutaan ladata näkymään (tietosisältö)

Route
- Mäppäys, jolla tietty url palauttaa tietyn controllerin metodin (joka palauttaa näkymän)


Esim:

Controllers/NewsController
- Show (näyttää yksittäisen uutisen)
- Index (näyttää Kaikki uutiset)
- Update (Päivittää uutisen)

Views/NewsController
- Show
- Index

Models/News
- yksittäisen uutisen tietosisältö

Routes (Mäppäykset tehdään jokaisessa kielessä vähän eri tavalla, php:sssa voi olla eri tapoja varmaan myös frameworkkien välillä. Esimerkissa Rails, jossa Controllerin nimestä käytetään vain alkuosa, NewsControllerin ollessa pelkkä News. Idea kuitenkin kaikissa sama, eli mikä url palauttaa minkä controllerin, minkä metodin)

Routes.rb
get "/Uutiset" => "News#index"
get "/Uutiset/:id" => "News#Show"
post "/Uutiset/Update" => "News#Update"

Ylläolevien esimerkkien mukaisesti, kun tullaan /Uutiset - urliin, ohjautuu kutsu NewsControllerin Index -metodiin, joka lataa Views/NewsController/Index näkymän ruutuun. Vaihtoehtoisesti kun tullaan /Uutiset/12 urliin, Show -metodi NewsControllerissa hakee id:llä 12 halutun uutisen, ja palauttaa Show näkymän kannasta palautuneen News -olion tietosisällöllä.

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta