webForumDet fria alternativet

2 enkla frågor

13 svar · 828 visningar · startad av yador

yadorMedlem sedan mars 2004455 inlägg
#1

God kväll alla :)
Fråga 1:
Hur ska man programmera för att koden ska vara så flyttbar som möjligt? Menar nu inte att man ska inte ge t.ex direkta länkar till filnamn osv utan på hur man bygger upp hela sin webb applikation. Jag kör nämligen den inbyggda webbservern i opensuse på min dator, men sedan idag när jag provade flytta över min webbsida till Windows (som hade xampp installerat) så fick jag flertal fel, även om de hade samma php version installerad. Så alltså, finns det något programmerings mönster man ska följa? Jag vill ju inte råka ut för detta när jag väl är klar med sidan och hade tänkt ladda upp den på ett webbhotell.

Fråga 2:
Finns det några program eller så man kan mäta hur mycket minne och processor kraft med mera php kräver för att skriva ut sin webbsida? Så man kan ha någon aning om hur mycket webbsidan kommer att dra om t.ex om 100-1000 st besöker sidan exakt samtidigt.

Tack på förhand!

effataMedlem sedan apr. 2008137 inlägg
#2

Kör du samma phpversion ska det inte skilja sig något mellan olika plattformat. Däremot kan det bli charsetproblem om du flyttar mellan linux och windows. Rekommenderar dig att köra med utf8 rakt av så slipper du det.
Sen kan det vara så att du har olika addons installerade, eller att inloggningsuppgifter till databas osv inte är detsamma.

Det skulle underlätta om du förklarade vad du fick för fel...

yadorMedlem sedan mars 2004455 inlägg
#3

Jag kör UTF-8 rakt av, filen är sparad som det och att det står i en html tag. Felen jag fick var bland annat att den klagade på tilldelningen av ett objekt(något med new) och att en variabel inte fanns. Detta var ganska konstigt då jag hade precis kopierat allt och inte ändrat något. Det finns dessutom ingen databas inkopplad till sidan än. Men jag kan skriva exakt vilka fel meddelanden jag får imorgon, när jag startar den datorn igen.

yadorMedlem sedan mars 2004455 inlägg
#4

Fel jag fick var:


Strict Standards: Assigning the return value of new by reference is deprecated in F:\program\xampp\php\PEAR\Config.php on line 80

Strict Standards: Assigning the return value of new by reference is deprecated in F:\program\xampp\php\PEAR\Config.php on line 166

Strict Standards: Assigning the return value of new by reference is deprecated in F:\program\xampp\php\PEAR\PEAR.php on line 563

Strict Standards: Assigning the return value of new by reference is deprecated in F:\program\xampp\php\PEAR\PEAR.php on line 566

Strict Standards: Assigning the return value of new by reference is deprecated in F:\program\xampp\php\PEAR\Config\Container.php on line 111

Notice: Undefined variable: Page in F:\program\xampp\htdocs\www\public\index.php on line 5

Fatal error: Call to a member function setTitle() on a non-object in F:\program\xampp\htdocs\www\public\index.php on line 5

Någon som har någon ide?

yadorMedlem sedan mars 2004455 inlägg
#5

Har ingen någon ide om fråga 2 i alla fall?

effataMedlem sedan apr. 2008137 inlägg
#6

Vad gör du för anrop på raden där det blir fel?
dvs F:\program\xampp\htdocs\www\public\index.php on line 5
gärna kod innan som berör det hela.

Det ser ut som du kan ha olika versioner av PEAR eller något PEAR addon.

effataMedlem sedan apr. 2008137 inlägg
#7

Vad gäller fråga 2.
Du kan ju alltid testa med funktionerna memory_get_usage och memory_get_peak_usage. Vill du ha execution time kan du sätta en variabel till microtime(true) vid start och slut och jämföra.

Ett annat tips skulle vara att googla på "php performance testing". Hittade bland annat http://www.xdebug.org/ som verkar kunna analysera en del av det du vill.

yadorMedlem sedan mars 2004455 inlägg
#8

Just i den filen ser det ut såhär:

require_once("../files/general.php");

$Page->setTitle("Qezino - Startsida");

//.. mer kod här

General:

<?php
error_reporting(E_ALL | E_STRICT);

ini_set("display_errors", "1");

require_once("config.php");

//mer kod här
?>

Config:

<?php
require_once("page.php");

$Page = new TemplatePage(); 
//.. mer kod här
?>

Och i självaste TemplatePage ser ut såhär:

<?php

class TemplatePage
{
	private $pageTitle;
	private $pageMeta;
	private $pageExternLinks;
	private $pageScript;
	private $pageHeader;
	private $pageLeft;
	private $pageRight;
	private $pageBottom;
	
	function __construct()
	{
		$this->pageTitle = "";
		$this->pageMeta = "";
		$this->pageExternLinks = "";
		$this->pageScript = "";
		$this->pageHeader = "";
		$this->pageLeft = "";
		$this->pageRight = "";
		$this->pageBottom = "";
		
	}
	
	function setTitle($a)
	{
		$this->pageTitle = $a;
	}

        //mer kod här
};
?>

Okej, jag ska titta mer på det det. Tack så länge :)

effataMedlem sedan apr. 2008137 inlägg
#9

Ser inga uppenbara konstigheter med koden. Känns mer som det är ett includeproblem med alla dessa nästlade includes du kör med. Något hindrar ju uppenbarligen $Page = new TemplatePage(); från att köras.
Har du kollat så alla filer är läsbara?
Vad händer om du försöker skapa ett TemplatePage objekt direkt i sidkoden?

yadorMedlem sedan mars 2004455 inlägg
#10

Japp, det har dem. Det fungerar felfritt om jag skapar ett nytt objekt av typen TemplatePage() i självaste index.php.

Trodde först att det var något med globala variabler att göra, men jag har det avstängt(står off i alla php_ini filerna) på både datorerna så det kan inte vara det.

effataMedlem sedan apr. 2008137 inlägg
#11

yador skrev:

Japp, det har dem. Det fungerar felfritt om jag skapar ett nytt objekt av typen TemplatePage() i självaste index.php.

Där har du utgångspunkten. Gå igenom alla dina filer i ordning, printa ut lite text och se var det slutar funka. Någonstans försvinner $Page...

TroxyMedlem sedan mars 20041 505 inlägg
#12

effata skrev:

Däremot kan det bli charsetproblem om du flyttar mellan linux och windows. Rekommenderar dig att köra med utf8 rakt av så slipper du det.

Hm...vad menar du? Textfilerna förändras väl inte om man bara flyttar dom?
Dessutom arbetar PHP med Latin-1 internt så egentligen borde det vara ett säkrare alternativ än UTF-8.

effataMedlem sedan apr. 2008137 inlägg
#13

Default charset varierar en del mellan plattformar. Tror windows fortfarande kör med windows-1252 i svensk version, som dessutom inte är helt detsamma som latin-1 (ISO 8859-1). Linux och mac jobbar vad jag minns med utf-8 som standard. Enklast tycker iaf jag är då att köra med utf-8 i alla editorer, så är man konsekvent över alla plattformar.
Utf-8 stödet kommer dessutom att förbättras markant i php6.

TroxyMedlem sedan mars 20041 505 inlägg
#14

effata skrev:

Default charset varierar en del mellan plattformar. Tror windows fortfarande kör med windows-1252 i svensk version.

Jo, Windows (oavsett språk) kör till stor del kör windows-1252. Men det spelar ingen roll eftersom det är textredigeraren som behandlar php-filerna.

Men rent praktiskt är windows-1252 och latin-1 samma sak. Men naturligtvis är UTF-8 att föredra eftersom man slipper bry sig. :) Man kan smaska på med svenska, arabiska eller kinesiska, tecknena visas alltid korrekt.

effata skrev:

Utf-8 stödet kommer dessutom att förbättras markant i php6.

Jepp :) Faktum är att PHP6 går från inget till fullt stöd för Unicode.
Det nämns sällan (men är ett faktum) att PHP räknar med att 1 byte = 1 tecken.
Så att köra PHP och UTF-8 är (än så länge) ett "osäkert kort" men går i många fall bra.

Poängen med min diskussion är att teckenkodning hänger på textredigeraren snarare än operativsystemet. :birp

135 ms totalt · 3 externa anrop · v20260731065814-full.30151723
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
132 ms — hämta tråd, inlägg och bilagor (db)