non so se è già capitato a qualcuno, ma io non riesco a trovarne una ragione, poiche tutto funziona sul server locale ma poi non va bene quando lo provo in altervista.
dunque: ho questa enum:
Codice:
<?php
namespace App\Models\enums;
enum PersonType:int
{
case Atleta=41;
case Club=42;
case Altro=43;
case Fornitore=44;
case Contatto=45;
public static function getLabel(self $value):string
{
return match($value)
{
PersonType::Atleta=>'Atleta',
PersonType::Club=>'Clubs o Enti',
PersonType::Contatto=>'Contatto',
PersonType::Fornitore=>'Ditta fornitrice',
PersonType::Altro=>'Altri tipi'
};
}
}
questo è il metodo che la richiama:
Codice:
use App\Models\enums\PersonType;
...
public function showCreate()
{
if (!empty($_SESSION['message'])){
$info=getPartials('_message');
}else{
$info=null;
}
$this->personVM->Tipo=41;
$this->content=view('persons'.DIRECTORY_SEPARATOR.'create',[
'info'=>$info,
'personVM'=>$this->personVM,
'types'=>PersonType::cases()
]);
}
questo il frammento di view che dovrebbe mostrare il contenuto:
Codice:
<div class="col">
<select class="select form-select-sm" name="Tipo" id="tipo" value="<?=$personVM->Tipo?>"
onchange="document.form.searchForm.submit()">
<?php foreach($types as $type){?>
<option value="<?=$type->value?>"><?=$type::getLabel($type)?></option>
<?php }?>
</select>
</div>
questo funziona sul mio computer ma quando provo a farlo girare sul server Altervista viene fuori questo errore:
Codice PHP:
Parse error: syntax error, unexpected identifier "PersonType" in /membri/isolaverdebasketit/app/models/enums/PersonType.php on line 5
, per la cronaca la linea 5 contiene:enum PersonType:int.
C'è qualcuno che ha affrontato un simile problema? (php ver 8.0)